The **Basic Polynomial Algebra Subprograms** (BPAS) library provides
support for arithmetic operations
with polynomials on modern computer architectures,
in particular hardware accelerators.
Typical operations are polynomial multiplication, multi-point
evaluation and interpolation, real root isolation for both
univariate and multivariate systems.
Its code is written in C++ with
CilkPlus extension targeting multi-core processors.
### Exposed BPAS ring classes

Integer
RationalNumber
ComplexRationalNumber
Fraction
SmartFraction
SmallPrimeField
BigPrimeField
GeneralizedFermatPrimeField

DenseUnivariateIntegerPolynomial (also named as DUZP)
DenseUnivariateRationalPolynomial (also named as DUQP)
SparseMultivariateIntegerPolynomial (also named as SMZP)
SparseMultivariateRationalPolynomial (also named as SMQP)
SparseUnivariatePolynomial<Ring>, taking any BPAS ring as the coefficient type
DenseUnivariatePolynomial<Field>, taking any BPAS field as the coefficient type
UnivariateRationalFunction<UnivariatePolynomialOverField, Field>
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial (also named as SFDDMMP)
DistributedDenseMultivariateModularPolynomial<Field>
### Exposed BPAS triangular set classes

TriangularSet<Field, RecursivePoly>
RegularChain<Field, RecursivePoly>
ZeroDimensionalRegularChain<Field, RecursivePoly>
### Nice Features

### Questions & Comments

- Polynomial multiplication and matrix multiplication are at the core of many algorithms in symbolic computation.
- Algebraic complexity is often estimated in terms of multiplication time. At the software level, this reduction to multiplication is also common (Magma, NTL, FLINT, ...).
- BPAS design follows the principle
*reducing everything to multiplication*.

It appears you don't have a PDF plugin for this browser. No biggie... you can click here to download the PDF file.

Polymorphic integration code features exact integration (as a formal sum) and symbolic-numeric integration of both dense and sparse representations of rational functions.

If you have questions or bug reports, please contact bpas <at> scl <dot> csd <dot> uwo <dot> ca.

ORCCA Lab, Department of Computer Science, The University of Western Ontario, London, Ontario, Canada N6A 5B7