computational-algebra: Well-kinded computational algebra library, currently supporting Groebner basis.

[ bsd3, library, math ] [ Propose Tags ]

Dependently-typed computational algebra library for Groebner basis.


[Skip to Readme]

Modules

[Last Documentation]

  • Algebra
    • Algorithms
      • Algebra.Algorithms.ChineseRemainder
      • Algebra.Algorithms.Groebner
      • Algebra.Algorithms.PrimeTest
      • Algebra.Algorithms.ZeroDim
    • Field
      • Algebra.Field.AlgebraicReal
      • Algebra.Field.Finite
      • Algebra.Field.Galois
    • Algebra.Instances
    • Algebra.Internal
    • Algebra.LinkedMatrix
    • Algebra.Matrix
    • Algebra.Normed
    • Algebra.Prelude
      • Algebra.Prelude.Core
    • Ring
      • Algebra.Ring.Ideal
      • Algebra.Ring.Polynomial
        • Algebra.Ring.Polynomial.Class
        • Algebra.Ring.Polynomial.Factorise
        • Algebra.Ring.Polynomial.Labeled
        • Algebra.Ring.Polynomial.Monomial
        • Algebra.Ring.Polynomial.Quotient
        • Algebra.Ring.Polynomial.Univariate
    • Algebra.Scalar

Flags

Manual Flags

NameDescriptionDefault
examplesDisabled
profileDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1.0, 0.0.1.1, 0.0.2.0, 0.0.3.0, 0.0.3.1, 0.0.3.2, 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.2.0, 0.1.3.0, 0.1.3.1, 0.1.3.5, 0.1.3.6, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.5.0.0, 0.5.1.0
Dependencies algebra (>=4.1 && <4.4), algebraic-prelude (>=0.1.1.0 && <0.2), arithmoi (>=0.5 && <0.7), base (>=4 && <4.11), computational-algebra, constraints (>=0.3 && <0.10), containers (>=0.5 && <0.6), control-monad-loop (>=0.1 && <0.2), convertible (>=1.1 && <1.2), criterion (>=0.8.1.0 && <1.3), deepseq (>=1.3 && <1.5), dlist (>=0.8 && <0.9), entropy (>=0.3.8 && <0.4), equational-reasoning (>=0.4 && <0.6), ghc-typelits-knownnat (>=0.3.1 && <0.4), ghc-typelits-natnormalise (>=0.5 && <0.6), ghc-typelits-presburger (>=0.1.1.1 && <0.2), hashable (>=1.1 && <1.3), heaps (>=0.3 && <0.4), hmatrix (>=0.16 && <0.19), hybrid-vectors (>=0.1 && <0.3), integer-logarithms (>=1.0 && <1.1), lens (>=4.13 && <4.16), ListLike (>=4.5 && <4.6), matrix (>=0.3 && <0.4), monad-loops (>=0.4 && <0.5), MonadRandom (>=0.1 && <0.6), mono-traversable (>=0.10 && <1.1), monomorphic (>=0.0.3 && <0.1), mtl (>=2.1 && <2.3), parallel (>=3.2 && <3.3), primes (>=0.2.1 && <0.3), random (>=1.0 && <1.2), reflection (>=2 && <2.2), semigroups (>=0.15 && <0.19), singletons (>=2.2 && <2.4), sized (>=0.2 && <0.3), tagged (>=0.7 && <0.9), template-haskell (>=2.10 && <2.13), text (>=0.11 && <1.3), type-natural (>=0.7.1 && <0.8), unamb (>=0.2 && <0.3), unordered-containers (>=0.2 && <0.3), vector (>=0.10 && <0.13), vector-algorithms (>=0.7.0.1 && <0.8) [details]
License BSD-3-Clause
Copyright (C) Hiromi ISHII 2013
Author Hiromi ISHII
Maintainer konn.jinro_at_gmail.com
Revised Revision 1 made by HiromiIshii at 2017-12-14T05:07:08Z
Category Math
Home page https://konn.github.com/computational-algebra
Source repo head: git clone git://github.com/konn/computational-algebra.git
Uploaded by HiromiIshii at 2017-12-07T06:42:49Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables quotient, sandpit-poly, hensel-prof, ipsolve, algebraic, solve, groebner-prof
Downloads 15391 total (44 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2017-12-07 [all 3 reports]

Readme for computational-algebra-0.5.1.0

[back to package description]

Computational Algebra Library

Build Status

For more detail, please read Official Project Site.

Overview

The computational-algebra is the computational algebra system, implemented as a Embedded Domain Specific Language (EDSL) in Haskell. This library provides many functionality for computational algebra, especially ideal computation such as Groebner basis calculation.

Thanks to Haskell's powerful language features, this library achieves the following goals:

Type-Safety : Haskell's static type system enforces static correctness and prevents you from violating invariants.

Flexibility : With the powerful type-system of Haskell, we can write highly abstract program resulted in easy-to-extend system.

Efficiency : Haskell comes with many aggressive optimization mechanism and parallel computation features, which enables us to write efficient program.

This package currently provides the following functionalities:

  • Groebner basis calculation w.r.t. arbitrary monomial ordering
    • Currently using Buchberger's algorithm with some optimization
    • Faugere's F_4 algorithms is experimentally implemented, but currently not as fast as Buchberger's algorithm
  • Computation in the (multivariate) polynomial ring over arbitarary field and its quotient ring
    • Ideal membership problem
    • Ideal operations such as intersection, saturation and so on.
    • Zero-dimensional ideal operation and conversion via FGLM algorithm
    • Variable elimination
  • Find numeric solutions for polynomial system with real coefficient

Requirements and Installation

Old version of this package is uploaded on Hackage, but it's rather outdated. Most recent version of computational-algebra is developed on GitHub.

It uses the most agressive language features recently implemented in Glasgow Haskell Compiler, so it requires at least GHC 8.0.1 and also it depends on many packages currently not available on Hackage, but you can install it fairly easily with help of The Haskell Tool Stack.

$ curl -sSL https://get.haskellstack.org/ | sh
  # if you haven't install Stack yet
$ git clone https://github.com/konn/computational-algebra
$ cd computational-algebra
$ stack build

In addition, you may need to install GSL and LAPACK (for matrix computation) beforehand. You can install them via Homebrew (OS X), apt-get, or other major package management systems.

Read More in Official Project Site