cheshirekow  v0.1.0
Product.h File Reference

Go to the source code of this file.

Classes

struct  mpblocks::cuda::polynomial::get_spec< Product< Scalar, Exp1, Spec1, Exp2, Spec2 > >
 
struct  mpblocks::cuda::polynomial::Product< Scalar, Exp1, Spec1, Exp2, Spec2 >
 expression template for sum of two matrix expressions More...
 
struct  mpblocks::cuda::polynomial::product_detail::IdxPair< A, B >
 pairs one index of the first polynomial with one index of the second polynomial More...
 
struct  mpblocks::cuda::polynomial::product_detail::inner_loop< Coeff1, Spec2, Map >
 inner loop More...
 
struct  mpblocks::cuda::polynomial::product_detail::inner_loop< Coeff1, IntList< Head, intlist::Terminal >, Map >
 
struct  mpblocks::cuda::polynomial::product_detail::inner_loop< Coeff1, IntList< Head, Tail >, Map >
 
struct  mpblocks::cuda::polynomial::product_detail::insert< Root, Node >
 insert a new key/value pair into the map More...
 
struct  mpblocks::cuda::polynomial::product_detail::insert< Null, Node >
 insert a Node into an empty map More...
 
struct  mpblocks::cuda::polynomial::product_detail::insert_postTest< NodeA, NodeB, ALessThanB >
 if ALessThanB is true, then template recurses, otherwise B is inserted in front of A More...
 
struct  mpblocks::cuda::polynomial::product_detail::insert_postTest< Node< KeyA, ValueA, NextA >, NodeB, true >
 
struct  mpblocks::cuda::polynomial::product_detail::insert_postTest< NodeA, Node< KeyB, ValueB, Null >, false >
 
struct  mpblocks::cuda::polynomial::product_detail::less_than< A, B >
 evaluates ordering on nodes by resolving their keys More...
 
struct  mpblocks::cuda::polynomial::product_detail::less_than< Node< KeyA, ValueA, NextA >, Node< KeyB, ValueB, NextB > >
 
struct  mpblocks::cuda::polynomial::product_detail::less_than< Node< KeyA, ValueA, NextA >, Null >
 
struct  mpblocks::cuda::polynomial::product_detail::less_than< Null, Node< KeyA, ValueA, NextA > >
 
struct  mpblocks::cuda::polynomial::product_detail::Node< Key, Value, Next >
 compile time map of output monomial to input monomial pairs that contribute to that coefficient More...
 
struct  mpblocks::cuda::polynomial::product_detail::outer_loop< Spec1, Spec2, Map >
 outer loop More...
 
struct  mpblocks::cuda::polynomial::product_detail::outer_loop< IntList< Head, intlist::Terminal >, Spec2, Map >
 
struct  mpblocks::cuda::polynomial::product_detail::outer_loop< IntList< Head, Tail >, Spec2, Map >
 
struct  mpblocks::cuda::polynomial::product_detail::product_spec< Spec1, Spec2 >
 compute product specification More...
 
struct  mpblocks::cuda::polynomial::product_detail::SpecPrinter< Spec >
 
struct  mpblocks::cuda::polynomial::product_detail::SpecPrinter< Node< Key, IdxPair< ValA, ValB >, Next > >
 
struct  mpblocks::cuda::polynomial::product_detail::SpecPrinter< Null >
 
struct  mpblocks::cuda::polynomial::product_detail::Summation< i, Scalar, Exp1, Exp2, Spec >
 
struct  mpblocks::cuda::polynomial::product_detail::Summation< i, Scalar, Exp1, Exp2, Node< i, IdxPair< ValA, ValB >, Next > >
 
struct  mpblocks::cuda::polynomial::product_detail::Summation< i, Scalar, Exp1, Exp2, Node< i, IdxPair< ValA, ValB >, Null > >
 
struct  mpblocks::cuda::polynomial::product_detail::Summation< i, Scalar, Exp1, Exp2, Node< Key, IdxPair< ValA, ValB >, Next > >
 
struct  mpblocks::cuda::polynomial::product_detail::Summation< i, Scalar, Exp1, Exp2, Node< Key, IdxPair< ValA, ValB >, Null > >
 

Namespaces

 mpblocks
 
 mpblocks::cuda
 
 mpblocks::cuda::polynomial
 
 mpblocks::cuda::polynomial::product_detail
 

Functions

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)
 
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)
 
template<int Key, int ValA, int ValB, class Next >
std::ostream & mpblocks::cuda::polynomial::product_detail::operator<< (std::ostream &out, SpecPrinter< Node< Key, IdxPair< ValA, ValB >, Next > > printer)