numeric-prelude-0.4.0.1: An experimental alternative hierarchy of numeric type classes

Safe HaskellNone

MathObj.Polynomial.Core

Description

This module implements polynomial functions on plain lists. We use such functions in order to implement methods of other datatypes.

The module organization differs from that of ResidueClass: Here the Polynomial module exports the type that fits to the NumericPrelude type classes, whereas in ResidueClass the sub-modules export various flavors of them.

Synopsis

Documentation

horner :: C a => a -> [a] -> aSource

Horner's scheme for evaluating a polynomial in a ring.

hornerCoeffVector :: C a v => a -> [v] -> vSource

Horner's scheme for evaluating a polynomial in a module.

hornerArgVector :: (C a v, C v) => v -> [a] -> vSource

normalize :: C a => [a] -> [a]Source

It's also helpful to put a polynomial in canonical form. normalize strips leading coefficients that are zero.

shift :: C a => [a] -> [a]Source

Multiply by the variable, used internally.

unShift :: [a] -> [a]Source

equal :: (Eq a, C a) => [a] -> [a] -> BoolSource

add :: C a => [a] -> [a] -> [a]Source

sub :: C a => [a] -> [a] -> [a]Source

negate :: C a => [a] -> [a]Source

scale :: C a => a -> [a] -> [a]Source

collinear :: (Eq a, C a) => [a] -> [a] -> BoolSource

tensorProduct :: C a => [a] -> [a] -> [[a]]Source

tensorProductAlt :: C a => [a] -> [a] -> [[a]]Source

mul :: C a => [a] -> [a] -> [a]Source

mul is fast if the second argument is a short polynomial, ** relies on that fact.

mulShear :: C a => [a] -> [a] -> [a]Source

mulShearTranspose :: C a => [a] -> [a] -> [a]Source

divMod :: (C a, C a) => [a] -> [a] -> ([a], [a])Source

divModRev :: (C a, C a) => [a] -> [a] -> ([a], [a])Source

stdUnit :: (C a, C a) => [a] -> aSource

progression :: C a => [a]Source

differentiate :: C a => [a] -> [a]Source

integrate :: C a => a -> [a] -> [a]Source

integrateInt :: (C a, C a) => a -> [a] -> [a]Source

Integrates if it is possible to represent the integrated polynomial in the given ring. Otherwise undefined coefficients occur.

mulLinearFactor :: C a => a -> [a] -> [a]Source

alternate :: C a => [a] -> [a]Source