Safe Haskell | None |
---|---|
Language | Haskell2010 |
Brute-force counting of solutions of polynomial equations over (small) finite field
Synopsis
- countAffineHypersurface :: FiniteDomain domain => Int -> Polynomial vars domain -> Int
- countProjectiveHypersurface :: FiniteDomain domain => Int -> Polynomial vars domain -> Int
- countAffineSolutions :: FiniteDomain domain => Int -> [Polynomial vars domain] -> Int
- countProjectiveSolutions :: FiniteDomain domain => Int -> [Polynomial vars domain] -> Int
- projEnumerateDomain :: FiniteDomain domain => Bool -> [domain]
- countTrues :: [Bool] -> Int
Hypersurfaces
countAffineHypersurface :: FiniteDomain domain => Int -> Polynomial vars domain -> Int Source #
Count points of a hypersurface in an affine space over a finite field.
The Int
input is the number of variables (that is, the dimension).
countProjectiveHypersurface :: FiniteDomain domain => Int -> Polynomial vars domain -> Int Source #
Count points of a hypersurface in an projective space over a finite field.
The Int
input is the number of variables (that is, the dimension plus one)!
NOTE: We assume that the input is a homogeneous polynomial, but this is not checked!!
Systems of equations (varieties)
countAffineSolutions :: FiniteDomain domain => Int -> [Polynomial vars domain] -> Int Source #
Count solutions of a system of polynomial equations in an affine space over a finite field.
The Int
input is the number of variables (that is, the dimension).
countProjectiveSolutions :: FiniteDomain domain => Int -> [Polynomial vars domain] -> Int Source #
Count solutions of a system of polynomial equations in a projective space over a finite field.
The Int
input is the number of variables (that is, the dimension plus one)!
NOTE: We assume that the input is a list of homogeneous polynomial, but this is not checked!!
Misc helpers
projEnumerateDomain :: FiniteDomain domain => Bool -> [domain] Source #
if the input is False, return [0,1], otherwise all elements of the domain
countTrues :: [Bool] -> Int Source #