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

Namespaces

 dot_private
 
 norm_private
 
 ostream
 
 product
 

Classes

class  Assignment
 copies elements one by one More...
 
class  Assignment2
 
class  Assignment2< Scalar, ROWS, COLS, i, COLS, Exp1, Exp2 >
 specialization for past-end-of row, acts like the next row More...
 
class  Assignment2< Scalar, ROWS, COLS, ROWS, 0, Exp1, Exp2 >
 specialization for past-end-of array More...
 
class  Assignment< Scalar, ROWS, COLS, i, COLS, Exp1, Exp2 >
 specialization for past-end-of row, acts like the next row More...
 
class  Assignment< Scalar, ROWS, COLS, ROWS, 0, Exp1, Exp2 >
 specialization for past-end-of array More...
 
class  AssignmentIterator
 iterates over elements More...
 
class  AssignmentIterator< Scalar, ROWS, COLS, i, COLS, Exp >
 specialization for past-end-of row, acts like the next row More...
 
class  Difference
 expression template for difference of two expressions More...
 
class  LValue
 expression template for rvalues More...
 
class  Matrix
 
struct  MatrixElement
 default template has column inheritence More...
 
struct  MatrixElement< Scalar, ROWS, COLS, i, 0 >
 specialization for 0'th column, also inherits row More...
 
struct  MatrixElement< Scalar, ROWS, COLS, i, COLS >
 empty class for last column More...
 
struct  MatrixElement< Scalar, ROWS, COLS, ROWS, 0 >
 empty class for last row More...
 
class  Product
 expression template for product expressions More...
 
class  Rotation2d
 
class  RValue
 expression template for rvalues More...
 
class  Scale
 expression template for multiplication by a scalar More...
 
class  Sum
 expression template for sum of two expressions More...
 
class  Transpose
 expression template for sum of two expressions More...
 
class  View
 expression template for subset of a matrix expression More...
 

Typedefs

typedef unsigned int Size_t
 

Functions

template<typename Scalar , Size_t ROWS, class ExpA , class ExpB >
__device__ __host__ Scalar dot (const RValue< Scalar, ROWS, 1, ExpA > &A, const RValue< Scalar, ROWS, 1, ExpB > &B)
 compute the DOT More...
 
template<Size_t i, Size_t j, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar get (const RValue< Scalar, ROWS, COLS, Exp > &M)
 
template<Size_t i, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar get (const RValue< Scalar, ROWS, COLS, Exp > &M)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Matrix
< Scalar, ROWS, COLS > 
mktmp (RValue< Scalar, ROWS, COLS, Exp > const &M)
 forces the creation of a temporary More...
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scalar norm (const RValue< Scalar, ROWS, COLS, Exp > &M)
 compute the norm More...
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scalar norm_squared (const RValue< Scalar, ROWS, COLS, Exp > &M)
 compute the norm More...
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale
< Scalar, ROWS, COLS, Exp > 
normalize (RValue< Scalar, ROWS, COLS, Exp > const &A)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale
< Scalar, ROWS, COLS, Exp > 
operator* (Scalar s, RValue< Scalar, ROWS, COLS, Exp > const &A)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale
< Scalar, ROWS, COLS, Exp > 
operator* (RValue< Scalar, ROWS, COLS, Exp > const &A, Scalar s)
 
template<typename Scalar , Size_t ROWS, Size_t COMMON, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Product
< Scalar, ROWS, COLS, COMMON,
Exp1, Exp2 > 
operator* (RValue< Scalar, ROWS, COMMON, Exp1 > const &A, RValue< Scalar, COMMON, COLS, Exp2 > const &B)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Sum
< Scalar, ROWS, COLS, Exp1,
Exp2 > 
operator+ (RValue< Scalar, ROWS, COLS, Exp1 > const &A, RValue< Scalar, ROWS, COLS, Exp2 > const &B)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Difference
< Scalar, ROWS, COLS, Exp1,
Exp2 > 
operator- (RValue< Scalar, ROWS, COLS, Exp1 > const &A, RValue< Scalar, ROWS, COLS, Exp2 > const &B)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
std::ostream & operator<< (std::ostream &out, RValue< Scalar, ROWS, COLS, Exp > const &M)
 
template<Size_t i, Size_t j, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar & set (LValue< Scalar, ROWS, COLS, Exp > &M)
 
template<Size_t i, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar & set (LValue< Scalar, ROWS, COLS, Exp > &M)
 
template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Transpose
< Scalar, ROWS, COLS, Exp > 
transpose (RValue< Scalar, ROWS, COLS, Exp > const &A)
 
template<Size_t i, Size_t j, Size_t ROWS, Size_t COLS, typename Scalar , Size_t ROWS2, Size_t COLS2, class Exp >
__device__ __host__ View< i, j,
ROWS, COLS, Scalar, Exp > 
view (const RValue< Scalar, ROWS2, COLS2, Exp > &A)
 return an RValue which is a block view of a matrix More...
 
template<Size_t i, Size_t ROWS, typename Scalar , Size_t ROWS2, class Exp >
__device__ __host__ View< i,
0, ROWS, 1, Scalar, Exp > 
view (const RValue< Scalar, ROWS2, 1, Exp > &A)
 return an RValue which is a subset of a vector More...
 

Typedef Documentation

typedef unsigned int mpblocks::cuda::linalg2::Size_t

Definition at line 35 of file linalg2.h.

Function Documentation

template<typename Scalar , Size_t ROWS, class ExpA , class ExpB >
__device__ __host__ Scalar mpblocks::cuda::linalg2::dot ( const RValue< Scalar, ROWS, 1, ExpA > &  A,
const RValue< Scalar, ROWS, 1, ExpB > &  B 
)
inline

compute the DOT

Definition at line 84 of file Dot.h.

template<Size_t i, Size_t j, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar mpblocks::cuda::linalg2::get ( const RValue< Scalar, ROWS, COLS, Exp > &  M)

Definition at line 42 of file Access.h.

template<Size_t i, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar mpblocks::cuda::linalg2::get ( const RValue< Scalar, ROWS, COLS, Exp > &  M)

Definition at line 51 of file Access.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Matrix< Scalar, ROWS, COLS > mpblocks::cuda::linalg2::mktmp ( RValue< Scalar, ROWS, COLS, Exp > const &  M)
inline

forces the creation of a temporary

Definition at line 42 of file mktmp.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scalar mpblocks::cuda::linalg2::norm ( const RValue< Scalar, ROWS, COLS, Exp > &  M)
inline

compute the norm

Definition at line 140 of file Norm.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scalar mpblocks::cuda::linalg2::norm_squared ( const RValue< Scalar, ROWS, COLS, Exp > &  M)
inline

compute the norm

Definition at line 130 of file Norm.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale< Scalar, ROWS, COLS, Exp > mpblocks::cuda::linalg2::normalize ( RValue< Scalar, ROWS, COLS, Exp > const &  A)
inline

Definition at line 149 of file Norm.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale< Scalar, ROWS, COLS, Exp > mpblocks::cuda::linalg2::operator* ( Scalar  s,
RValue< Scalar, ROWS, COLS, Exp > const &  A 
)
inline

Definition at line 72 of file Scale.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Scale< Scalar, ROWS, COLS, Exp > mpblocks::cuda::linalg2::operator* ( RValue< Scalar, ROWS, COLS, Exp > const &  A,
Scalar  s 
)
inline

Definition at line 80 of file Scale.h.

template<typename Scalar , Size_t ROWS, Size_t COMMON, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Product< Scalar, ROWS, COLS, COMMON, Exp1, Exp2 > mpblocks::cuda::linalg2::operator* ( RValue< Scalar, ROWS, COMMON, Exp1 > const &  A,
RValue< Scalar, COMMON, COLS, Exp2 > const &  B 
)
inline

Definition at line 122 of file Product.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Sum< Scalar, ROWS, COLS, Exp1, Exp2 > mpblocks::cuda::linalg2::operator+ ( RValue< Scalar, ROWS, COLS, Exp1 > const &  A,
RValue< Scalar, ROWS, COLS, Exp2 > const &  B 
)
inline

Definition at line 74 of file Sum.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp1 , class Exp2 >
__device__ __host__ Difference< Scalar, ROWS, COLS, Exp1, Exp2 > mpblocks::cuda::linalg2::operator- ( RValue< Scalar, ROWS, COLS, Exp1 > const &  A,
RValue< Scalar, ROWS, COLS, Exp2 > const &  B 
)
inline

Definition at line 74 of file Difference.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
std::ostream& mpblocks::cuda::linalg2::operator<< ( std::ostream &  out,
RValue< Scalar, ROWS, COLS, Exp > const &  M 
)

Definition at line 174 of file iostream.h.

template<Size_t i, Size_t j, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar& mpblocks::cuda::linalg2::set ( LValue< Scalar, ROWS, COLS, Exp > &  M)

Definition at line 60 of file Access.h.

template<Size_t i, typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__host__ __device__ Scalar& mpblocks::cuda::linalg2::set ( LValue< Scalar, ROWS, COLS, Exp > &  M)

Definition at line 69 of file Access.h.

template<typename Scalar , Size_t ROWS, Size_t COLS, class Exp >
__device__ __host__ Transpose< Scalar, ROWS, COLS, Exp > mpblocks::cuda::linalg2::transpose ( RValue< Scalar, ROWS, COLS, Exp > const &  A)
inline

Definition at line 70 of file Transpose.h.

template<Size_t i, Size_t j, Size_t ROWS, Size_t COLS, typename Scalar , Size_t ROWS2, Size_t COLS2, class Exp >
__device__ __host__ View<i,j,ROWS,COLS,Scalar,Exp> mpblocks::cuda::linalg2::view ( const RValue< Scalar, ROWS2, COLS2, Exp > &  A)

return an RValue which is a block view of a matrix

Definition at line 76 of file View.h.

template<Size_t i, Size_t ROWS, typename Scalar , Size_t ROWS2, class Exp >
__device__ __host__ View<i,0,ROWS,1,Scalar,Exp> mpblocks::cuda::linalg2::view ( const RValue< Scalar, ROWS2, 1, Exp > &  A)
inline

return an RValue which is a subset of a vector

Definition at line 90 of file View.h.