polynomial-algebra: Multivariate polynomial rings

[ bsd3, library, math ] [ Propose Tags ] [ Report a vulnerability ]
Versions [RSS] 0.1, 0.1.0.1
Dependencies array (>=0.5), base (>=4 && <5), compact-word-vectors (>=0.2.0.2), containers (>=0.6) [details]
Tested with ghc ==8.6.5, ghc ==9.0.1
License BSD-3-Clause
Copyright (c) 2018-2022 Balazs Komuves
Author Balazs Komuves
Maintainer bkomuves (plus) hackage (at) gmail (dot) com
Category Math
Home page https://github.com/bkomuves/polynomial-algebra
Source repo head: git clone https://github.com/bkomuves/polynomial-algebra
Uploaded by BalazsKomuves at 2022-03-24T11:15:08Z
Distributions NixOS:0.1.0.1
Reverse Dependencies 1 direct, 1 indirect [details]
Downloads 329 total (5 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for polynomial-algebra-0.1.0.1

[back to package description]

polynomial-algebra Haskell library

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.