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) # 
(Eq b, Eq a, Unbox b) => Eq (Bernsteinp a b) # 

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) # 
(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int) a) # 
(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int, Int) a) # 
(Fractional a, Num a, Unbox a) => Num (Bernsteinp (Int, Int, Int, Int) a) # 
(Unbox b, Show b, Show a) => Show (Bernsteinp a b) # 

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 # 

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) # 

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) # 

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) # 

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).