# polynomial-algebra: Multivariate polynomial rings

[ bsd3, library, math ] [ Propose Tags ]

Multivariate and univariate polynomial rings, with several different representations

Versions [RSS] [faq] 0.1 array (>=0.5), base (==4.*), compact-word-vectors (>=0.2.0.2), containers (>=0.6) [details] BSD-3-Clause (c) 2018-2019 Balazs Komuves Balazs Komuves bkomuves (plus) hackage (at) gmail (dot) com Math https://github.com/bkomuves/polynomial-algebra head: git clone https://github.com/bkomuves/polynomial-algebra by BalazsKomuves at 2021-07-26T15:47:34Z NixOS:0.1 49 total (4 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs available Last success reported on 2021-07-28

#### Maintainer's Corner

For package maintainers and hackage trustees

Candidates

• No Candidates

[back to package description]

This is a Haskell library to compute with multivariate polynomials.

Polynomials are implemented as free modules (with a coefficient ring) over the monoid of monomials. The free module implementation is basically a map from monomials to coefficients, with the invariant that zero coefficients should be never present. Different implementations of monomials are available with different speed and usability tradeoffs:

• generic monomial over a variable set given by inhabitants of a type
• monomials over x1, x2 ... xn (two different in-memory representations)
• monomials over an infinite number of variables x1, x2, ...
• univariate monomial (basically, an integer exponent)
• exterior monomial (for exterior algebra)

Type level parameters are used for the variable names (used for pretty-printing) and number of variables where possible.

A type class interface allows the user to work uniformly over different implementations.