| Copyright | (c) Stéphane Laurent 2023 |
|---|---|
| License | GPL-3 |
| Maintainer | laurent_step@outlook.fr |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Math.Algebra.Hspray
Description
Deals with multivariate polynomials on a ring. See README for examples.
Synopsis
- data Powers = Powers {
- exponents :: Seq Int
- nvariables :: Int
- type Spray a = HashMap Powers a
- type Monomial a = (Powers, a)
- lone :: C a => Int -> Spray a
- unitSpray :: C a => Spray a
- constantSpray :: (C a, Eq a) => a -> Spray a
- fromList :: (C a, Eq a) => [([Int], a)] -> Spray a
- toList :: Spray a -> [([Int], a)]
- sprayTerms :: Spray a -> HashMap (Seq Int) a
- (*^) :: (C a, Eq a) => a -> Spray a -> Spray a
- (.^) :: (C a, Eq a) => Int -> Spray a -> Spray a
- (^+^) :: (C a, Eq a) => Spray a -> Spray a -> Spray a
- (^-^) :: (C a, Eq a) => Spray a -> Spray a -> Spray a
- (^*^) :: (C a, Eq a) => Spray a -> Spray a -> Spray a
- (^**^) :: (C a, Eq a) => Spray a -> Int -> Spray a
- evalSpray :: C a => Spray a -> [a] -> a
- substituteSpray :: (Eq a, C a) => [Maybe a] -> Spray a -> Spray a
- fromRationalSpray :: Spray Rational -> Spray Double
- prettySpray :: (a -> String) -> String -> Spray a -> String
- prettySpray' :: Show a => Spray a -> String
- prettySprayXYZ :: Show a => Spray a -> String
- composeSpray :: (C a, Eq a) => Spray a -> [Spray a] -> Spray a
- bombieriSpray :: C a => Spray a -> Spray a
- derivSpray :: (C a, Eq a) => Int -> Spray a -> Spray a
- leadingTerm :: Spray a -> Monomial a
- sprayDivision :: forall a. (Eq a, C a) => Spray a -> [Spray a] -> Spray a
- groebner :: forall a. (Eq a, C a) => [Spray a] -> Bool -> [Spray a]
- esPolynomial :: (C a, Eq a) => Int -> Int -> Spray a
- isSymmetricSpray :: forall a. (C a, Eq a) => Spray a -> Bool
- isPolynomialOf :: forall a. (C a, Eq a) => Spray a -> [Spray a] -> (Bool, Maybe (Spray a))
Documentation
substituteSpray :: (Eq a, C a) => [Maybe a] -> Spray a -> Spray a Source #
Substitute some variables in a spray
fromRationalSpray :: Spray Rational -> Spray Double Source #
Convert a spray with rational coefficients to a spray with double coefficients
Arguments
| :: (a -> String) | function mapping a coefficient to a string, typically |
| -> String | a string denoting the variable, e.g. "x" |
| -> Spray a | the spray |
| -> String |
Pretty form of a spray
prettySpray' :: Show a => Spray a -> String Source #
Pretty form of a spray, with monomials showed as "x1x3^2"
prettySprayXYZ :: Show a => Spray a -> String Source #
Pretty form of a spray having at more three variables
composeSpray :: (C a, Eq a) => Spray a -> [Spray a] -> Spray a Source #
Compose a spray with a change of variables
bombieriSpray :: C a => Spray a -> Spray a Source #
Bombieri spray (for internal usage in the scubature library)
Derivative of a spray
leadingTerm :: Spray a -> Monomial a Source #
Leading term of a spray
sprayDivision :: forall a. (Eq a, C a) => Spray a -> [Spray a] -> Spray a Source #
Remainder of the division of a spray by a list of divisors, using the lexicographic ordering of the monomials
Arguments
| :: forall a. (Eq a, C a) | |
| => [Spray a] | list of sprays |
| -> Bool | whether to return the reduced basis |
| -> [Spray a] |
Groebner basis (always minimal and possibly reduced)
Elementary symmetric polynomial