polynomials-bernstein-1.1.2: A solver for systems of polynomial equations in bernstein form

Safe HaskellNone
LanguageHaskell98

Algebra.Polynomials.Bernstein

Description

Various functions for manipulating polynomials, essentially when represented in the Bernstein basis, in one or two variables.

Synopsis

Documentation

data Bernsteinp a b #

The type for Bernstein polynomials with an arbitrary number of variables

Constructors

Bernsteinp 

Fields

Instances
Num (Bernsteinp a Interval) => Intervalize (Bernsteinp a) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

(Unbox b, Eq a, Eq b) => Eq (Bernsteinp a b) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

(==) :: Bernsteinp a b -> Bernsteinp a b -> Bool #

(/=) :: Bernsteinp a b -> Bernsteinp a b -> Bool #

(Num a, Fractional a, Unbox a) => Num (Bernsteinp Int a) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int) a) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int, Int) a) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int, Int, Int) a) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

(Show a, Show b, Unbox b) => Show (Bernsteinp a b) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

showsPrec :: Int -> Bernsteinp a b -> ShowS #

show :: Bernsteinp a b -> String #

showList :: [Bernsteinp a b] -> ShowS #

solve :: (Show a, Show i, Eq a, Box a i) => Double -> Vector (Bernsteinp i Interval) -> a -> [a] #

Computes the intersection of a given Bezier hypersurface, given by its graph, with plane z=0.

class Bernstein a where #

Minimal complete definition

(?), constant, promote, elevate, eval, restriction

Methods

(?) :: Unbox b => Bernsteinp a b -> a -> b #

constant :: (Unbox b, Num b, Fractional b) => b -> Bernsteinp a b #

scale :: (Num b, Fractional b, Unbox b) => b -> Bernsteinp a b -> Bernsteinp a b #

promote :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp a b #

elevate :: (Unbox b, Num b, Fractional b) => a -> Bernsteinp a b -> Bernsteinp a b #

eval :: (Unbox b, Num b, Fractional b) => Bernsteinp a b -> Param a b -> b #

restriction :: (Unbox b, Fractional b, Num b) => Bernsteinp a b -> Param a b -> Param a b -> Bernsteinp a b #

Instances
Bernstein Int # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

(?) :: Unbox b => Bernsteinp Int b -> Int -> b #

constant :: (Unbox b, Num b, Fractional b) => b -> Bernsteinp Int b #

scale :: (Num b, Fractional b, Unbox b) => b -> Bernsteinp Int b -> Bernsteinp Int b #

promote :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp Int b #

elevate :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp Int b #

eval :: (Unbox b, Num b, Fractional b) => Bernsteinp Int b -> Param Int b -> b #

restriction :: (Unbox b, Fractional b, Num b) => Bernsteinp Int b -> Param Int b -> Param Int b -> Bernsteinp Int b #

Bernstein (Int, Int) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

(?) :: Unbox b => Bernsteinp (Int, Int) b -> (Int, Int) -> b #

constant :: (Unbox b, Num b, Fractional b) => b -> Bernsteinp (Int, Int) b #

scale :: (Num b, Fractional b, Unbox b) => b -> Bernsteinp (Int, Int) b -> Bernsteinp (Int, Int) b #

promote :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp (Int, Int) b #

elevate :: (Unbox b, Num b, Fractional b) => (Int, Int) -> Bernsteinp (Int, Int) b -> Bernsteinp (Int, Int) b #

eval :: (Unbox b, Num b, Fractional b) => Bernsteinp (Int, Int) b -> Param (Int, Int) b -> b #

restriction :: (Unbox b, Fractional b, Num b) => Bernsteinp (Int, Int) b -> Param (Int, Int) b -> Param (Int, Int) b -> Bernsteinp (Int, Int) b #

Bernstein (Int, Int, Int) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

(?) :: Unbox b => Bernsteinp (Int, Int, Int) b -> (Int, Int, Int) -> b #

constant :: (Unbox b, Num b, Fractional b) => b -> Bernsteinp (Int, Int, Int) b #

scale :: (Num b, Fractional b, Unbox b) => b -> Bernsteinp (Int, Int, Int) b -> Bernsteinp (Int, Int, Int) b #

promote :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp (Int, Int, Int) b #

elevate :: (Unbox b, Num b, Fractional b) => (Int, Int, Int) -> Bernsteinp (Int, Int, Int) b -> Bernsteinp (Int, Int, Int) b #

eval :: (Unbox b, Num b, Fractional b) => Bernsteinp (Int, Int, Int) b -> Param (Int, Int, Int) b -> b #

restriction :: (Unbox b, Fractional b, Num b) => Bernsteinp (Int, Int, Int) b -> Param (Int, Int, Int) b -> Param (Int, Int, Int) b -> Bernsteinp (Int, Int, Int) b #

Bernstein (Int, Int, Int, Int) # 
Instance details

Defined in Algebra.Polynomials.Bernstein

Methods

(?) :: Unbox b => Bernsteinp (Int, Int, Int, Int) b -> (Int, Int, Int, Int) -> b #

constant :: (Unbox b, Num b, Fractional b) => b -> Bernsteinp (Int, Int, Int, Int) b #

scale :: (Num b, Fractional b, Unbox b) => b -> Bernsteinp (Int, Int, Int, Int) b -> Bernsteinp (Int, Int, Int, Int) b #

promote :: (Unbox b, Num b, Fractional b) => Int -> Bernsteinp Int b -> Bernsteinp (Int, Int, Int, Int) b #

elevate :: (Unbox b, Num b, Fractional b) => (Int, Int, Int, Int) -> Bernsteinp (Int, Int, Int, Int) b -> Bernsteinp (Int, Int, Int, Int) b #

eval :: (Unbox b, Num b, Fractional b) => Bernsteinp (Int, Int, Int, Int) b -> Param (Int, Int, Int, Int) b -> b #

restriction :: (Unbox b, Fractional b, Num b) => Bernsteinp (Int, Int, Int, Int) b -> Param (Int, Int, Int, Int) b -> Param (Int, Int, Int, Int) b -> Bernsteinp (Int, Int, Int, Int) b #

derivate :: (Unbox a, Num a) => Bernsteinp Int a -> Bernsteinp Int a #

Computes the derivative of a univariate Bernstein polynomial.

reorient :: Unbox a => Bernsteinp Int a -> Bernsteinp Int a #

Computes f(1-x) (useful when used with Bezier curves).