cheshirekow  v0.1.0
mpblocks::cuda::polynomial Namespace Reference

Namespaces

 coefficient_key
 
 derivative_detail
 
 device_coefficient_key
 
 device_param_key
 
 intlist
 
 param_key
 
 polyval_detail
 
 product_detail
 
 scalarsum_detail
 
 sturm2_detail
 
 sturm3_detail
 
 sturm_detail
 

Classes

struct  Assign
 
struct  Assign< true, Scalar, Spec, Exp, idx >
 
struct  AssignmentHelper
 
struct  AssignmentHelper< Scalar, Exp1, Exp2, IntList< Head, Tail > >
 
struct  AssignmentHelper< Scalar, Exp1, Exp2, IntList< Tail, intlist::Terminal > >
 
struct  Coefficient
 class actually providing storage for a coefficient More...
 
struct  CoefficientKey
 
struct  CountZeros
 
struct  CountZeros< 1 >
 
struct  CountZeros< 2 >
 
struct  CountZeros< 3 >
 
struct  CountZeros< 4 >
 
struct  CountZeros< 5 >
 
struct  Derivative
 expression template for sum of two matrix expressions More...
 
struct  DerivativeSpec
 
struct  DerivativeSpec< IntList< Head, intlist::Terminal >, n >
 
struct  DerivativeSpec< IntList< Head, Tail >, n >
 
struct  DerivativeSurrogate
 intermediate object which allows LValue assignment operator to call differntiate expression template for sum of two matrix expressions More...
 
struct  Difference
 expression template for sum of two matrix expressions More...
 
struct  Divide
 specialization for the first step uses actual numerator, not remainder More...
 
struct  Divide< true, 0, Scalar, NumExp, NumSpec, DenExp, DenSpec >
 specialization for the first step uses actual numerator, not remainder More...
 
struct  Divide< true, i, Scalar, NumExp, NumSpec, DenExp, DenSpec >
 
struct  get_spec
 
struct  get_spec< Derivative< Scalar, Exp, Spec > >
 
struct  get_spec< Difference< Scalar, Exp1, Spec1, Exp2, Spec2 > >
 
struct  get_spec< Negative< Scalar, Exp, Spec > >
 
struct  get_spec< Normalized< Scalar, Exp, Spec > >
 
struct  get_spec< Polynomial< Scalar, Spec > >
 
struct  get_spec< Product< Scalar, Exp1, Spec1, Exp2, Spec2 > >
 
struct  get_spec< ScalarProduct< Scalar, Exp, Spec > >
 
struct  get_spec< ScalarSum< Scalar, Exp, Spec > >
 
struct  get_spec< Sum< Scalar, Exp1, Spec1, Exp2, Spec2 > >
 
struct  GetHelper
 
struct  GetHelper< true, idx, Scalar, Spec >
 
struct  IntList
 compile time integer list (because cuda doesn't understand variadic templates ) More...
 
class  LValue
 expression template for lvalues More...
 
struct  Negative
 expression template for sum of two matrix expressions More...
 
struct  Normalized
 expression template for sum of two matrix expressions More...
 
struct  ParamKey
 
struct  Polynomial
 A sparse, statically sized polynomial. More...
 
struct  PolyPrinter
 
struct  PolyPrinter< Scalar, Exp, intlist::Terminal >
 
struct  PolyPrinter< Scalar, Exp, IntList< 0, Tail > >
 
struct  PolyPrinter< Scalar, Exp, IntList< 1, Tail > >
 
struct  PolyPrinter< Scalar, Exp, IntList< Head, Tail > >
 
struct  Printer
 
struct  Printer< IntList< Head, Tail > >
 
struct  Printer< IntList< Tail, intlist::Terminal > >
 
struct  Product
 expression template for sum of two matrix expressions More...
 
struct  Quotient
 expression template for polynomial long division More...
 
struct  QuotientSpec
 
struct  QuotientSurrogate
 surrogate for initialzing with / operator More...
 
struct  RemainderSpec
 
struct  RValue
 expression template for rvalues More...
 
struct  ScalarProduct
 expression template for sum of two matrix expressions More...
 
struct  ScalarSum
 expression template for sum of two matrix expressions More...
 
struct  ScratchSpec
 
struct  Storage
 recursive inheritance tree which provides storage for each of the required coefficients More...
 
struct  Storage< Scalar, IntList< SpecHead, SpecTail > >
 
struct  Storage< Scalar, IntList< SpecTail, intlist::Terminal > >
 
class  StreamAssignment
 assignment More...
 
struct  SturmSequence
 stores a squence of polynomials which satisfy the properties of sturms theorem and provides methods for computing the number of sign changes More...
 
struct  SturmSequence2
 stores a squence of polynomials which satisfy the properties of sturms theorem and provides methods for computing the number of sign changes More...
 
struct  SturmTypes
 
struct  Sum
 expression template for sum of two matrix expressions More...
 

Functions

template<typename Scalar , class Spec , class Exp >
__host__ __device__
__forceinline__ void 
assign (Polynomial< Scalar, Spec > &p, const Exp &exp)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__
__forceinline__ void 
construct (SturmSequence2< Scalar, Spec > &sturm, const Exp &exp)
 construct a sturm sequence More...
 
template<int n, typename Scalar , class Exp , class Spec >
__host__ __device__
DerivativeSurrogate< n, Scalar,
Exp, Spec > 
d_ds (const RValue< Scalar, Exp, Spec > &exp)
 return a surrogate which notifies LValue to call differentiate More...
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__ Derivative
< Scalar, Exp, Spec > 
d_dx (RValue< Scalar, Exp, Spec > const &P)
 
template<int n, typename Scalar , class Exp1 , class InSpec , class Exp2 >
__host__ __device__ void differentiate (const RValue< Scalar, Exp1, InSpec > &in, LValue< Scalar, Exp2 > &out)
 evaluate a polynomial More...
 
template<typename Scalar , class NumExp , class NumSpec , class DenExp , class DenSpec >
__host__ __device__
__forceinline__ void 
divide (const NumExp &n, const DenExp &d, Polynomial< Scalar, typename QuotientSpec< NumSpec, DenSpec >::result > &q, Polynomial< Scalar, typename RemainderSpec< NumSpec, DenSpec >::result > &r)
 
template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar get (const Exp1 &)
 
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar get (const Negative< Scalar, Exp, Spec > &exp)
 
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar get (const Normalized< Scalar, Exp, Spec > &exp)
 
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar get (const ScalarProduct< Scalar, Exp, Spec > &sum)
 
template<int idx, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar get (const Difference< Scalar, Exp1, Spec1, Exp2, Spec2 > &sum)
 
template<int idx, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar get (const Sum< Scalar, Exp1, Spec1, Exp2, Spec2 > &sum)
 
template<int i, typename Scalar , int max>
__host__ __device__
__forceinline__ Polynomial
< Scalar, typename
intlist::range< 0, max-i >
::result > & 
get (SturmSequence< Scalar, max > &sturm)
 convienience accessor, returns the i'th polynomial in the sequence, where the 0'th polynomial is the original More...
 
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar get (const ScalarSum< Scalar, Exp, Spec > &sum)
 
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar get (const Derivative< Scalar, Exp, Spec > &exp)
 
template<int i, typename Scalar , class Spec >
__host__ __device__
__forceinline__ Polynomial
< Scalar, typename
sturm2_detail::SturmSpec< Spec,
i >::result > & 
get (SturmSequence2< Scalar, Spec > &sturm)
 return the i'th polynomial in the sturm sequence More...
 
template<int i, typename Scalar , class Spec >
__host__ __device__
__forceinline__ const
Polynomial< Scalar, typename
sturm2_detail::SturmSpec< Spec,
i >::result > & 
get (const SturmSequence2< Scalar, Spec > &sturm)
 
template<int i, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar get (const Product< Scalar, Exp1, Spec1, Exp2, Spec2 > &exp)
 
template<int idx, typename Scalar , class Spec >
__host__ __device__
__forceinline__ Scalar 
get (const Polynomial< Scalar, Spec > &poly)
 
template<typename Scalar , class Exp >
__host__ __device__ LValue
< Scalar, Exp > & 
lvalue (LValue< Scalar, Exp > &exp)
 
template<typename Scalar , class NumSpec , class DenSpec >
__host__ __device__
__forceinline__ void 
mod (const Polynomial< Scalar, NumSpec > &n, const Polynomial< Scalar, DenSpec > &d, Polynomial< Scalar, typename RemainderSpec< NumSpec, DenSpec >::result > &r)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__ Normalized
< Scalar, Exp, Spec > 
normalized (const RValue< Scalar, Exp, Spec > &exp)
 
template<typename Scalar , int pow>
__host__ __device__ Polynomial
< Scalar, IntList< pow,
intlist::Terminal > > 
operator* (Scalar v, CoefficientKey< pow > c)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__
__forceinline__ ScalarProduct
< Scalar, Exp, Spec > 
operator* (const Scalar &a, RValue< Scalar, Exp, Spec > const &B)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__
__forceinline__ ScalarProduct
< Scalar, Exp, Spec > 
operator* (RValue< Scalar, Exp, Spec > const &B, const Scalar &a)
 
template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Product
< Scalar, Exp1, Spec1, Exp2,
Spec2 > 
operator* (RValue< Scalar, Exp1, Spec1 > const &A, RValue< Scalar, Exp2, Spec2 > const &B)
 
template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Sum
< Scalar, Exp1, Spec1, Exp2,
Spec2 > 
operator+ (RValue< Scalar, Exp1, Spec1 > const &A, RValue< Scalar, Exp2, Spec2 > const &B)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__
__forceinline__ ScalarSum
< Scalar, Exp, Spec > 
operator+ (const Scalar &a, RValue< Scalar, Exp, Spec > const &B)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__
__forceinline__ ScalarSum
< Scalar, Exp, Spec > 
operator+ (RValue< Scalar, Exp, Spec > const &B, const Scalar &a)
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__ Negative
< Scalar, Exp, Spec > 
operator- (RValue< Scalar, Exp, Spec > const &exp)
 
template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Difference
< Scalar, Exp1, Spec1, Exp2,
Spec2 > 
operator- (RValue< Scalar, Exp1, Spec1 > const &A, RValue< Scalar, Exp2, Spec2 > const &B)
 
template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__
QuotientSurrogate< Scalar,
Exp1, Spec1, Exp2, Spec2 > 
operator/ (RValue< Scalar, Exp1, Spec1 > const &A, RValue< Scalar, Exp2, Spec2 > const &B)
 
template<class T >
std::ostream & operator<< (std::ostream &out, const Printer< T > &)
 
template<typename Scalar , class Exp , typename Scalar2 >
__host__ __device__
StreamAssignment< Scalar, Exp, 1 > 
operator<< (LValue< Scalar, Exp > &exp, const Scalar2 &val)
 
template<class Scalar , class Exp , class Spec >
std::ostream & operator<< (std::ostream &out, const RValue< Scalar, Exp, Spec > &exp)
 
template<int pow>
__host__ __device__
CoefficientKey< pow > 
operator^ (ParamKey, CoefficientKey< pow > c)
 
template<typename Scalar , class Exp , class Spec , typename Scalar2 >
__host__ __device__ Scalar polyval (const RValue< Scalar, Exp, Spec > &exp, Scalar2 x)
 evaluate a polynomial More...
 
template<typename Scalar , class Exp , class Spec >
__host__ __device__ RValue
< Scalar, Exp, Spec > & 
rvalue (RValue< Scalar, Exp, Spec > &exp)
 
template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar & set (Exp1 &)
 
template<int idx, typename Scalar , class Spec >
__host__ __device__
__forceinline__ Scalar & 
set (Polynomial< Scalar, Spec > &poly)
 
template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar & set_storage (Exp1 &)
 
template<int idx, typename Scalar , class Spec >
__host__ __device__
__forceinline__ Scalar & 
set_storage (Polynomial< Scalar, Spec > &poly)
 
template<typename Scalar , class Spec >
__host__ __device__ int signChanges (SturmSequence2< Scalar, Spec > &sturm, Scalar arg)
 construct a sturm sequence More...
 

Function Documentation

template<typename Scalar , class Spec , class Exp >
__host__ __device__ __forceinline__ void mpblocks::cuda::polynomial::assign ( Polynomial< Scalar, Spec > &  p,
const Exp &  exp 
)

Definition at line 55 of file assign.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ __forceinline__ void mpblocks::cuda::polynomial::construct ( SturmSequence2< Scalar, Spec > &  sturm,
const Exp &  exp 
)

construct a sturm sequence

Definition at line 186 of file SturmSequence2.h.

template<int n, typename Scalar , class Exp , class Spec >
__host__ __device__ DerivativeSurrogate<n,Scalar,Exp,Spec> mpblocks::cuda::polynomial::d_ds ( const RValue< Scalar, Exp, Spec > &  exp)

return a surrogate which notifies LValue to call differentiate

Definition at line 196 of file differentiate.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ Derivative<Scalar,Exp,Spec> mpblocks::cuda::polynomial::d_dx ( RValue< Scalar, Exp, Spec > const &  P)

Definition at line 104 of file Derivative.h.

template<int n, typename Scalar , class Exp1 , class InSpec , class Exp2 >
__host__ __device__ void mpblocks::cuda::polynomial::differentiate ( const RValue< Scalar, Exp1, InSpec > &  in,
LValue< Scalar, Exp2 > &  out 
)

evaluate a polynomial

Definition at line 165 of file differentiate.h.

template<typename Scalar , class NumExp , class NumSpec , class DenExp , class DenSpec >
__host__ __device__ __forceinline__ void mpblocks::cuda::polynomial::divide ( const NumExp &  n,
const DenExp &  d,
Polynomial< Scalar, typename QuotientSpec< NumSpec, DenSpec >::result > &  q,
Polynomial< Scalar, typename RemainderSpec< NumSpec, DenSpec >::result > &  r 
)

Definition at line 145 of file divide.h.

template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Exp1 &  )
template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Negative< Scalar, Exp, Spec > &  exp)

Definition at line 61 of file Negative.h.

template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Normalized< Scalar, Exp, Spec > &  exp)

Definition at line 63 of file Normalized.h.

template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const ScalarProduct< Scalar, Exp, Spec > &  sum)

Definition at line 69 of file ScalarProduct.h.

template<int idx, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Difference< Scalar, Exp1, Spec1, Exp2, Spec2 > &  sum)

Definition at line 74 of file Difference.h.

template<int idx, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Sum< Scalar, Exp1, Spec1, Exp2, Spec2 > &  sum)

Definition at line 76 of file Sum.h.

template<int i, typename Scalar , int max>
__host__ __device__ __forceinline__ Polynomial< Scalar, typename intlist::range< 0, max-i >::result > & mpblocks::cuda::polynomial::get ( SturmSequence< Scalar, max > &  sturm)

convienience accessor, returns the i'th polynomial in the sequence, where the 0'th polynomial is the original

Definition at line 149 of file SturmSequence.h.

template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const ScalarSum< Scalar, Exp, Spec > &  sum)

Definition at line 94 of file ScalarSum.h.

template<int idx, typename Scalar , class Exp , class Spec >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Derivative< Scalar, Exp, Spec > &  exp)

Definition at line 94 of file Derivative.h.

template<int i, typename Scalar , class Spec >
__host__ __device__ __forceinline__ Polynomial<Scalar, typename sturm2_detail::SturmSpec<Spec,i>::result>& mpblocks::cuda::polynomial::get ( SturmSequence2< Scalar, Spec > &  sturm)

return the i'th polynomial in the sturm sequence

Definition at line 110 of file SturmSequence2.h.

template<int i, typename Scalar , class Spec >
__host__ __device__ __forceinline__ const Polynomial<Scalar, typename sturm2_detail::SturmSpec<Spec,i>::result>& mpblocks::cuda::polynomial::get ( const SturmSequence2< Scalar, Spec > &  sturm)

Definition at line 118 of file SturmSequence2.h.

template<int i, typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Scalar mpblocks::cuda::polynomial::get ( const Product< Scalar, Exp1, Spec1, Exp2, Spec2 > &  exp)

Definition at line 294 of file Product.h.

template<int idx, typename Scalar , class Spec >
__host__ __device__ __forceinline__ Scalar mpblocks::cuda::polynomial::get ( const Polynomial< Scalar, Spec > &  poly)

Definition at line 370 of file Polynomial.h.

template<typename Scalar , class Exp >
__host__ __device__ LValue<Scalar,Exp>& mpblocks::cuda::polynomial::lvalue ( LValue< Scalar, Exp > &  exp)

Definition at line 123 of file LValue.h.

template<typename Scalar , class NumSpec , class DenSpec >
__host__ __device__ __forceinline__ void mpblocks::cuda::polynomial::mod ( const Polynomial< Scalar, NumSpec > &  n,
const Polynomial< Scalar, DenSpec > &  d,
Polynomial< Scalar, typename RemainderSpec< NumSpec, DenSpec >::result > &  r 
)

Definition at line 175 of file divide.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ Normalized<Scalar,Exp,Spec> mpblocks::cuda::polynomial::normalized ( const RValue< Scalar, Exp, Spec > &  exp)

Definition at line 72 of file Normalized.h.

template<typename Scalar , int pow>
__host__ __device__ Polynomial<Scalar, IntList<pow,intlist::Terminal> > mpblocks::cuda::polynomial::operator* ( Scalar  v,
CoefficientKey< pow >  c 
)

Definition at line 58 of file Construct.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ __forceinline__ ScalarProduct<Scalar,Exp,Spec> mpblocks::cuda::polynomial::operator* ( const Scalar &  a,
RValue< Scalar, Exp, Spec > const &  B 
)

Definition at line 77 of file ScalarProduct.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ __forceinline__ ScalarProduct<Scalar,Exp,Spec> mpblocks::cuda::polynomial::operator* ( RValue< Scalar, Exp, Spec > const &  B,
const Scalar &  a 
)

Definition at line 86 of file ScalarProduct.h.

template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Product<Scalar,Exp1,Spec1,Exp2,Spec2> mpblocks::cuda::polynomial::operator* ( RValue< Scalar, Exp1, Spec1 > const &  A,
RValue< Scalar, Exp2, Spec2 > const &  B 
)

Definition at line 306 of file Product.h.

template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Sum<Scalar,Exp1,Spec1,Exp2,Spec2> mpblocks::cuda::polynomial::operator+ ( RValue< Scalar, Exp1, Spec1 > const &  A,
RValue< Scalar, Exp2, Spec2 > const &  B 
)

Definition at line 85 of file Sum.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ __forceinline__ ScalarSum<Scalar,Exp,Spec> mpblocks::cuda::polynomial::operator+ ( const Scalar &  a,
RValue< Scalar, Exp, Spec > const &  B 
)

Definition at line 102 of file ScalarSum.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ __forceinline__ ScalarSum<Scalar,Exp,Spec> mpblocks::cuda::polynomial::operator+ ( RValue< Scalar, Exp, Spec > const &  B,
const Scalar &  a 
)

Definition at line 111 of file ScalarSum.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ Negative<Scalar,Exp,Spec> mpblocks::cuda::polynomial::operator- ( RValue< Scalar, Exp, Spec > const &  exp)

Definition at line 69 of file Negative.h.

template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ Difference<Scalar,Exp1,Spec1,Exp2,Spec2> mpblocks::cuda::polynomial::operator- ( RValue< Scalar, Exp1, Spec1 > const &  A,
RValue< Scalar, Exp2, Spec2 > const &  B 
)

Definition at line 84 of file Difference.h.

template<typename Scalar , class Exp1 , class Spec1 , class Exp2 , class Spec2 >
__host__ __device__ QuotientSurrogate<Scalar,Exp1,Spec1,Exp2,Spec2> mpblocks::cuda::polynomial::operator/ ( RValue< Scalar, Exp1, Spec1 > const &  A,
RValue< Scalar, Exp2, Spec2 > const &  B 
)

Definition at line 165 of file Quotient.h.

template<class T >
std::ostream& mpblocks::cuda::polynomial::operator<< ( std::ostream &  out,
const Printer< T > &   
)

Definition at line 43 of file Printer.h.

template<typename Scalar , class Exp , typename Scalar2 >
__host__ __device__ StreamAssignment<Scalar,Exp,1> mpblocks::cuda::polynomial::operator<< ( LValue< Scalar, Exp > &  exp,
const Scalar2 &  val 
)

Definition at line 76 of file StreamAssignment.h.

template<class Scalar , class Exp , class Spec >
std::ostream& mpblocks::cuda::polynomial::operator<< ( std::ostream &  out,
const RValue< Scalar, Exp, Spec > &  exp 
)

Definition at line 93 of file ostream.h.

template<int pow>
__host__ __device__ CoefficientKey<pow> mpblocks::cuda::polynomial::operator^ ( ParamKey  ,
CoefficientKey< pow >  c 
)

Definition at line 50 of file Construct.h.

template<typename Scalar , class Exp , class Spec , typename Scalar2 >
__host__ __device__ Scalar mpblocks::cuda::polynomial::polyval ( const RValue< Scalar, Exp, Spec > &  exp,
Scalar2  x 
)

evaluate a polynomial

Definition at line 62 of file polyval.h.

template<typename Scalar , class Exp , class Spec >
__host__ __device__ RValue<Scalar,Exp,Spec>& mpblocks::cuda::polynomial::rvalue ( RValue< Scalar, Exp, Spec > &  exp)

Definition at line 46 of file RValue.h.

template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar& mpblocks::cuda::polynomial::set ( Exp1 &  )
template<int idx, typename Scalar , class Spec >
__host__ __device__ __forceinline__ Scalar& mpblocks::cuda::polynomial::set ( Polynomial< Scalar, Spec > &  poly)

Definition at line 378 of file Polynomial.h.

template<int idx, typename Scalar , class Exp1 >
__host__ __device__ Scalar& mpblocks::cuda::polynomial::set_storage ( Exp1 &  )
template<int idx, typename Scalar , class Spec >
__host__ __device__ __forceinline__ Scalar& mpblocks::cuda::polynomial::set_storage ( Polynomial< Scalar, Spec > &  poly)

Definition at line 385 of file Polynomial.h.

template<typename Scalar , class Spec >
__host__ __device__ int mpblocks::cuda::polynomial::signChanges ( SturmSequence2< Scalar, Spec > &  sturm,
Scalar  arg 
)

construct a sturm sequence

Definition at line 210 of file SturmSequence2.h.