35#ifndef _BLAZE_MATH_EXPRESSIONS_SVECMAPEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_SVECMAPEXPR_H_
93 :
public VecMapExpr< SparseVector< SVecMapExpr<VT,OP,TF>, TF > >
110 static constexpr bool useAssign = RequiresEvaluation_v<VT>;
114 template<
typename VT2 >
115 static constexpr bool UseAssign_v =
useAssign;
127 template<
typename VT2 >
128 static constexpr bool UseSMPAssign_v =
129 ( ( !VT2::smpAssignable || !VT::smpAssignable ) &&
useAssign );
146 using ReturnType =
decltype( std::declval<OP>()( std::declval<RN>() ) );
193 ,
op_( std::move(op) )
234 return op_(
it_->value() );
302 ,
op_( std::move(op) )
326 if( index >=
sv_.size() ) {
329 return (*
this)[index];
358 inline size_t size() const noexcept {
369 return sv_.nonZeros();
435 template<
typename T >
436 inline bool canAlias(
const T* alias )
const noexcept {
437 return sv_.canAlias( alias );
447 template<
typename T >
448 inline bool isAliased(
const T* alias )
const noexcept {
449 return sv_.isAliased( alias );
459 return sv_.canSMPAssign();
483 template<
typename VT2 >
496 assign( *lhs,
map( tmp, rhs.op_ ) );
516 template<
typename VT2 >
525 assign( *lhs, rhs.sv_ );
527 const auto end( (*lhs).end() );
528 for(
auto element=(*lhs).begin(); element!=
end; ++element ) {
529 element->value() = rhs.op_( element->value() );
550 template<
typename VT2 >
551 friend inline auto assign( SparseVector<VT2,TF>& lhs,
const SVecMapExpr& rhs )
552 -> EnableIf_t< UseAssign_v<VT2> &&
553 !IsSame_v< UnderlyingScalar_t<VT>, UnderlyingScalar_t<VT2> > >
564 (*lhs).reserve( tmp.nonZeros() );
565 assign( *lhs,
map( tmp, rhs.op_ ) );
584 template<
typename VT2 >
585 friend inline auto addAssign( DenseVector<VT2,TF>& lhs,
const SVecMapExpr& rhs )
586 -> EnableIf_t< UseAssign_v<VT2> >
597 addAssign( *lhs,
map( tmp, rhs.op_ ) );
620 template<
typename VT2 >
621 friend inline auto subAssign( DenseVector<VT2,TF>& lhs,
const SVecMapExpr& rhs )
622 -> EnableIf_t< UseAssign_v<VT2> >
633 subAssign( *lhs,
map( tmp, rhs.op_ ) );
656 template<
typename VT2 >
657 friend inline auto multAssign( DenseVector<VT2,TF>& lhs,
const SVecMapExpr& rhs )
658 -> EnableIf_t< UseAssign_v<VT2> >
669 multAssign( *lhs,
map( tmp, rhs.op_ ) );
692 template<
typename VT2 >
694 -> EnableIf_t< UseSMPAssign_v<VT2> >
704 const RT tmp( rhs.sv_ );
728 template<
typename VT2 >
730 -> EnableIf_t< UseSMPAssign_v<VT2> >
740 const RT tmp( rhs.sv_ );
764 template<
typename VT2 >
766 -> EnableIf_t< UseSMPAssign_v<VT2> >
776 const RT tmp( rhs.sv_ );
800 template<
typename VT2 >
802 -> EnableIf_t< UseSMPAssign_v<VT2> >
812 const RT tmp( rhs.sv_ );
866 return ReturnType( *sv, std::move(op) );
896 return map( *sv, std::move(op) );
1002template<
typename VT
1030template<
typename VT
1058template<
typename VT
1086template<
typename VT
1123template<
typename VT
1151template<
typename VT
1179template<
typename VT
1207template<
typename VT
1213 return map( *sv,
Arg() );
1238template<
typename VT
1269template<
typename VT
1300template<
typename VT
1331template<
typename VT
1361template<
typename VT
1391template<
typename VT
1394 , EnableIf_t< IsScalar_v<ST> >* =
nullptr >
1422template<
typename VT
1428 return map( *sv,
Exp() );
1450template<
typename VT
1478template<
typename VT
1509template<
typename VT
1515 return map( *sv,
Log() );
1540template<
typename VT
1571template<
typename VT
1604template<
typename VT
1637template<
typename VT
1665template<
typename VT
1671 return map( *sv,
Sin() );
1696template<
typename VT
1724template<
typename VT
1752template<
typename VT
1780template<
typename VT
1786 return map( *sv,
Cos() );
1811template<
typename VT
1839template<
typename VT
1870template<
typename VT
1898template<
typename VT
1904 return map( *sv,
Tan() );
1926template<
typename VT
1957template<
typename VT
1988template<
typename VT
2016template<
typename VT
2022 return map( *sv,
Erf() );
2044template<
typename VT
2074template<
typename VT
2076inline decltype(
auto)
abs(
const SVecMapExpr<VT,Abs,TF>& sv )
2097template<
typename VT
2099inline decltype(
auto)
sign(
const SVecMapExpr<VT,Sign,TF>& sv )
2120template<
typename VT
2122inline decltype(
auto)
floor(
const SVecMapExpr<VT,Floor,TF>& sv )
2143template<
typename VT
2145inline decltype(
auto)
ceil(
const SVecMapExpr<VT,Ceil,TF>& sv )
2166template<
typename VT
2168inline decltype(
auto)
trunc(
const SVecMapExpr<VT,Trunc,TF>& sv )
2189template<
typename VT
2191inline decltype(
auto)
round(
const SVecMapExpr<VT,Round,TF>& sv )
2219template<
typename VT
2221inline decltype(
auto)
conj(
const SVecMapExpr<VT,Conj,TF>& sv )
2225 return sv.operand();
2249template<
typename VT
2251inline decltype(
auto)
conj(
const SVecTransExpr<SVecMapExpr<VT,Conj,TF>,!TF>& sv )
2255 return trans( sv.operand().operand() );
2272template<
typename VT
2274inline decltype(
auto)
real(
const SVecMapExpr<VT,Real,TF>& sv )
Header file for auxiliary alias declarations.
typename T::ReturnType ReturnType_t
Alias declaration for nested ReturnType type definitions.
Definition: Aliases.h:470
typename T::ResultType ResultType_t
Alias declaration for nested ResultType type definitions.
Definition: Aliases.h:450
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.
Definition: Aliases.h:190
typename T::ConstIterator ConstIterator_t
Alias declaration for nested ConstIterator type definitions.
Definition: Aliases.h:130
typename T::TransposeType TransposeType_t
Alias declaration for nested TransposeType type definitions.
Definition: Aliases.h:550
Header file for run time assertion macros.
Header file for the EnableIf class template.
Header file for the function trace functionality.
Header file for all functors.
Header file for the If class template.
Header file for the IsExpression type trait class.
Header file for the IsSame and IsStrictlySame type traits.
Header file for the IsScalar type trait.
Deactivation of problematic macros.
Header file for the map trait.
Header file for the multiplication trait.
Header file for the RemoveReference type trait.
Header file for the UnderlyingBuiltin type trait.
Header file for the UnderlyingScalar type trait.
Header file for the ValueIndexPair class.
Base class for N-dimensional dense vectors.
Definition: DenseVector.h:77
Iterator over the elements of the sparse vector map expression.
Definition: SVecMapExpr.h:162
OP op_
The custom unary operation.
Definition: SVecMapExpr.h:284
DifferenceType difference_type
Difference between two iterators.
Definition: SVecMapExpr.h:182
DifferenceType operator-(const ConstIterator &rhs) const
Calculating the number of elements between two expression iterators.
Definition: SVecMapExpr.h:276
ValueIndexPair< ElementType > Element
Element type of the sparse vector expression.
Definition: SVecMapExpr.h:166
ConstIterator & operator++()
Pre-increment operator.
Definition: SVecMapExpr.h:202
IteratorType it_
Iterator over the elements of the sparse vector expression.
Definition: SVecMapExpr.h:283
size_t index() const
Access to the current index of the sparse element.
Definition: SVecMapExpr.h:243
ValueType * PointerType
Pointer return type.
Definition: SVecMapExpr.h:173
bool operator!=(const ConstIterator &rhs) const
Inequality comparison between two ConstIterator objects.
Definition: SVecMapExpr.h:265
ConstIterator(IteratorType it, OP op)
Constructor for the ConstIterator class.
Definition: SVecMapExpr.h:191
const Element operator*() const
Direct access to the sparse vector element at the current iterator position.
Definition: SVecMapExpr.h:213
bool operator==(const ConstIterator &rhs) const
Equality comparison between two ConstIterator objects.
Definition: SVecMapExpr.h:254
ptrdiff_t DifferenceType
Difference between two iterators.
Definition: SVecMapExpr.h:175
IteratorCategory iterator_category
The iterator category.
Definition: SVecMapExpr.h:178
ReturnType value() const
Access to the current value of the sparse element.
Definition: SVecMapExpr.h:233
Element ValueType
Type of the underlying pointers.
Definition: SVecMapExpr.h:172
std::forward_iterator_tag IteratorCategory
The iterator category.
Definition: SVecMapExpr.h:171
ConstIterator_t< RemoveReference_t< Operand > > IteratorType
Iterator type of the sparse vector expression.
Definition: SVecMapExpr.h:169
const ConstIterator * operator->() const
Direct access to the sparse vector element at the current iterator position.
Definition: SVecMapExpr.h:223
ValueType & ReferenceType
Reference return type.
Definition: SVecMapExpr.h:174
Expression object for the sparse vector map() function.
Definition: SVecMapExpr.h:95
OP Operation
Data type of the custom unary operation.
Definition: SVecMapExpr.h:155
size_t size() const noexcept
Returns the current size/dimension of the vector.
Definition: SVecMapExpr.h:358
bool canSMPAssign() const noexcept
Returns whether the expression can be used in SMP assignments.
Definition: SVecMapExpr.h:458
ResultType_t< VT > RT
Result type of the sparse vector expression.
Definition: SVecMapExpr.h:98
ConstIterator begin() const
Returns an iterator to the first non-zero element of the sparse vector.
Definition: SVecMapExpr.h:338
If_t< IsExpression_v< VT >, const VT, const VT & > Operand
Composite data type of the sparse vector expression.
Definition: SVecMapExpr.h:152
ReturnType operator[](size_t index) const
Subscript operator for the direct access to the vector elements.
Definition: SVecMapExpr.h:312
If_t< useAssign, const ResultType, const SVecMapExpr & > CompositeType
Data type for composite expression templates.
Definition: SVecMapExpr.h:149
ElementType_t< ResultType > ElementType
Resulting element type.
Definition: SVecMapExpr.h:143
bool canAlias(const T *alias) const noexcept
Returns whether the expression can alias with the given address alias.
Definition: SVecMapExpr.h:436
Operand operand() const noexcept
Returns the sparse vector operand.
Definition: SVecMapExpr.h:414
ConstIterator upperBound(size_t index) const
Returns an iterator to the first index greater then the given index.
Definition: SVecMapExpr.h:403
ReturnType at(size_t index) const
Checked access to the vector elements.
Definition: SVecMapExpr.h:325
size_t nonZeros() const
Returns the number of non-zero elements in the sparse vector.
Definition: SVecMapExpr.h:368
static constexpr bool useAssign
Compilation switch for the serial evaluation strategy of the map expression.
Definition: SVecMapExpr.h:110
Operation operation() const
Returns a copy of the custom operation.
Definition: SVecMapExpr.h:424
ConstIterator end() const
Returns an iterator just past the last non-zero element of the sparse vector.
Definition: SVecMapExpr.h:348
Operand sv_
Sparse vector of the map expression.
Definition: SVecMapExpr.h:465
ConstIterator lowerBound(size_t index) const
Returns an iterator to the first index not less then the given index.
Definition: SVecMapExpr.h:391
ReturnType_t< VT > RN
Return type of the sparse vector expression.
Definition: SVecMapExpr.h:99
SVecMapExpr(const VT &sv, OP op) noexcept
Constructor for the SVecMapExpr class.
Definition: SVecMapExpr.h:300
Operation op_
The custom unary operation.
Definition: SVecMapExpr.h:466
ConstIterator find(size_t index) const
Searches for a specific vector element.
Definition: SVecMapExpr.h:379
static constexpr bool smpAssignable
Compilation switch for the expression template assignment strategy.
Definition: SVecMapExpr.h:291
decltype(std::declval< OP >()(std::declval< RN >())) ReturnType
Return type for expression template evaluations.
Definition: SVecMapExpr.h:146
MapTrait_t< RT, OP > ResultType
Result type for expression template evaluations.
Definition: SVecMapExpr.h:141
TransposeType_t< ResultType > TransposeType
Transpose type for expression template evaluations.
Definition: SVecMapExpr.h:142
bool isAliased(const T *alias) const noexcept
Returns whether the expression is aliased with the given address alias.
Definition: SVecMapExpr.h:448
Base class for sparse vectors.
Definition: SparseVector.h:72
Index-value-pair for sparse vectors and matrices.
Definition: ValueIndexPair.h:75
Constraint on the data type.
Constraint on the data type.
Header file for the Computation base class.
Header file for the SparseVector base class.
Header file for the VecMapExpr base class.
decltype(auto) min(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise minimum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1339
decltype(auto) max(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise maximum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1375
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:766
decltype(auto) map(const DenseMatrix< MT1, SO > &lhs, const DenseMatrix< MT2, SO > &rhs, OP op)
Elementwise evaluation of the given binary operation on each single element of the dense matrices lhs...
Definition: DMatDMatMapExpr.h:1144
decltype(auto) serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:812
constexpr Bind3rd< OP, A3 > bind3rd(const OP &op, const A3 &a3)
Binds the given object/value to the 3rd parameter of the given operation.
Definition: Bind3rd.h:157
constexpr Bind2nd< OP, A2 > bind2nd(const OP &op, const A2 &a2)
Binds the given object/value to the 2nd parameter of the given operation.
Definition: Bind2nd.h:155
#define BLAZE_CONSTRAINT_MUST_NOT_REQUIRE_EVALUATION(T)
Constraint on the data type.
Definition: RequiresEvaluation.h:81
#define BLAZE_CONSTRAINT_MUST_BE_VECTOR_WITH_TRANSPOSE_FLAG(T, TF)
Constraint on the data type.
Definition: TransposeFlag.h:63
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_VECTOR_TYPE(T)
Constraint on the data type.
Definition: SparseVector.h:61
typename MapTrait< Args... >::Type MapTrait_t
Auxiliary alias declaration for the MapTrait class template.
Definition: MapTrait.h:131
typename MultTrait< T1, T2 >::Type MultTrait_t
Auxiliary alias declaration for the MultTrait class template.
Definition: MultTrait.h:165
typename UnderlyingScalar< T >::Type UnderlyingScalar_t
Auxiliary alias declaration for the UnderlyingScalar type trait.
Definition: UnderlyingScalar.h:116
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.
Definition: Assert.h:101
auto smpSubAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > >
Default implementation of the SMP subtraction assignment of a matrix to dense matrix.
Definition: DenseMatrix.h:162
auto smpAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > >
Default implementation of the SMP assignment of a matrix to a dense matrix.
Definition: DenseMatrix.h:100
auto smpMultAssign(Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > >
Default implementation of the SMP multiplication assignment of a vector to a dense vector.
Definition: DenseVector.h:192
auto smpAddAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > >
Default implementation of the SMP addition assignment of a matrix to a dense matrix.
Definition: DenseMatrix.h:131
decltype(auto) invcbrt(const SparseVector< VT, TF > &sv)
Computes the inverse cubic root of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1333
decltype(auto) atanh(const SparseVector< VT, TF > &sv)
Computes the inverse hyperbolic tangent of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1990
decltype(auto) abs(const SparseVector< VT, TF > &sv)
Applies the abs() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:920
decltype(auto) erfc(const SparseVector< VT, TF > &sv)
Computes the complementary error function of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:2046
decltype(auto) cos(const SparseVector< VT, TF > &sv)
Computes the cosine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1782
decltype(auto) log1p(const SparseVector< VT, TF > &sv)
Computes the natural logarithm of x+1 of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1606
decltype(auto) tan(const SparseVector< VT, TF > &sv)
Computes the tangent of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1900
decltype(auto) exp(const SparseVector< VT, TF > &sv)
Computes of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1424
decltype(auto) ctrans(const SparseVector< VT, TF > &sv)
Returns the conjugate transpose vector of sv.
Definition: SVecMapExpr.h:1125
decltype(auto) sign(const SparseVector< VT, TF > &sv)
Applies the sign() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:948
decltype(auto) atan(const SparseVector< VT, TF > &sv)
Computes the inverse tangent of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1928
decltype(auto) floor(const SparseVector< VT, TF > &sv)
Applies the floor() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:976
decltype(auto) sqrt(const SparseVector< VT, TF > &sv)
Computes the square root of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1240
decltype(auto) clamp(const SparseVector< VT, TF > &sv, const DT &min, const DT &max)
Restricts each single element of the sparse vector sv to the range .
Definition: SVecMapExpr.h:1364
decltype(auto) log10(const SparseVector< VT, TF > &sv)
Computes the common logarithm of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1573
decltype(auto) tanh(const SparseVector< VT, TF > &sv)
Computes the hyperbolic tangent of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1959
decltype(auto) conj(const SparseVector< VT, TF > &sv)
Returns a vector containing the complex conjugate of each single element of sv.
Definition: SVecMapExpr.h:1088
decltype(auto) invsqrt(const SparseVector< VT, TF > &sv)
Computes the inverse square root of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1271
decltype(auto) imag(const SparseVector< VT, TF > &sv)
Returns a vector containing the imaginary parts of each single element of sv.
Definition: SVecMapExpr.h:1181
decltype(auto) trunc(const SparseVector< VT, TF > &sv)
Applies the trunc() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1032
decltype(auto) arg(const SparseVector< VT, TF > &sv)
Returns a vector containing the phase angle of each single element of sv.
Definition: SVecMapExpr.h:1209
decltype(auto) sinh(const SparseVector< VT, TF > &sv)
Computes the hyperbolic sine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1726
decltype(auto) ceil(const SparseVector< VT, TF > &sv)
Applies the ceil() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1004
decltype(auto) pow(const SparseVector< VT, TF > &sv, ST exp)
Computes the exponential value for each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1395
decltype(auto) log(const SparseVector< VT, TF > &sv)
Computes the natural logarithm of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1511
decltype(auto) acos(const SparseVector< VT, TF > &sv)
Computes the inverse cosine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1813
decltype(auto) lgamma(const SparseVector< VT, TF > &sv)
Computes the natural logarithm of the absolute value of the gamma function of each non-zero element o...
Definition: SVecMapExpr.h:1639
decltype(auto) asinh(const SparseVector< VT, TF > &sv)
Computes the inverse hyperbolic sine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1754
decltype(auto) exp2(const SparseVector< VT, TF > &sv)
Computes of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1452
decltype(auto) round(const SparseVector< VT, TF > &sv)
Applies the round() function to each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1060
decltype(auto) forEach(const SparseVector< VT, TF > &sv, OP op)
Evaluates the given custom operation on each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:892
decltype(auto) log2(const SparseVector< VT, TF > &sv)
Computes the binary logarithm of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1542
decltype(auto) cosh(const SparseVector< VT, TF > &sv)
Computes the hyperbolic cosine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1841
decltype(auto) asin(const SparseVector< VT, TF > &sv)
Computes the inverse sine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1698
decltype(auto) sin(const SparseVector< VT, TF > &sv)
Computes the sine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1667
decltype(auto) cbrt(const SparseVector< VT, TF > &sv)
Computes the cubic root of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1302
decltype(auto) exp10(const SparseVector< VT, TF > &sv)
Computes of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1480
decltype(auto) erf(const SparseVector< VT, TF > &sv)
Computes the error function of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:2018
decltype(auto) acosh(const SparseVector< VT, TF > &sv)
Computes the inverse hyperbolic cosine of each non-zero element of the sparse vector sv.
Definition: SVecMapExpr.h:1872
decltype(auto) real(const SparseVector< VT, TF > &sv)
Returns a vector containing the real parts of each single element of sv.
Definition: SVecMapExpr.h:1153
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
typename If< Condition >::template Type< T1, T2 > If_t
Auxiliary alias template for the If class template.
Definition: If.h:108
#define BLAZE_THROW_OUT_OF_RANGE(MESSAGE)
Macro for the emission of a std::out_of_range exception.
Definition: Exception.h:331
#define BLAZE_FUNCTION_TRACE
Function trace macro.
Definition: FunctionTrace.h:94
Header file for the exception macros of the math module.
Constraint on the data type.
Header file for all forward declarations for expression class templates.
Header file for the serial shim.
Generic wrapper for the abs() function.
Definition: Abs.h:85
Generic wrapper for the acos() function.
Definition: Acos.h:71
Generic wrapper for the acosh() function.
Definition: Acosh.h:71
Generic wrapper for the arg() function.
Definition: Arg.h:77
Generic wrapper for the asin() function.
Definition: Asin.h:81
Generic wrapper for the asinh() function.
Definition: Asinh.h:81
Generic wrapper for the atan() function.
Definition: Atan.h:81
Generic wrapper for the atanh() function.
Definition: Atanh.h:81
Generic wrapper for the cbrt() function.
Definition: Cbrt.h:83
Generic wrapper for the ceil() function.
Definition: Ceil.h:83
Generic wrapper for the clamp() function.
Definition: Clamp.h:68
Base class for all compute expression templates.
Definition: Computation.h:68
Generic wrapper for the conj() function.
Definition: Conj.h:85
Generic wrapper for the cos() function.
Definition: Cos.h:71
Generic wrapper for the cosh() function.
Definition: Cosh.h:71
Generic wrapper for the erf() function.
Definition: Erf.h:79
Generic wrapper for the erfc() function.
Definition: Erfc.h:69
Generic wrapper for the exp10() function.
Definition: Exp10.h:69
Generic wrapper for the exp2() function.
Definition: Exp2.h:69
Generic wrapper for the exp() function.
Definition: Exp.h:71
Generic wrapper for the floor() function.
Definition: Floor.h:83
Generic wrapper for the imag() function.
Definition: Imag.h:76
Generic wrapper for the invcbrt() function.
Definition: InvCbrt.h:69
Generic wrapper for the invsqrt() function.
Definition: InvSqrt.h:71
Generic wrapper for the lgamma() function.
Definition: LGamma.h:71
Generic wrapper for the log10() function.
Definition: Log10.h:71
Generic wrapper for the log1p() function.
Definition: Log1p.h:71
Generic wrapper for the log2() function.
Definition: Log2.h:69
Generic wrapper for the log() function.
Definition: Log.h:71
Generic wrapper for the pow() function.
Definition: Pow.h:65
Generic wrapper for the real() function.
Definition: Real.h:82
Generic wrapper for the round() function.
Definition: Round.h:83
Generic wrapper for the sign() function.
Definition: Sign.h:83
Generic wrapper for the sin() function.
Definition: Sin.h:81
Generic wrapper for the sinh() function.
Definition: Sinh.h:81
Generic wrapper for the sqrt() function.
Definition: Sqrt.h:85
Generic wrapper for the tan() function.
Definition: Tan.h:81
Generic wrapper for the tanh() function.
Definition: Tanh.h:81
Generic wrapper for the trunc() function.
Definition: Trunc.h:83
Base class for all unary vector map expression templates.
Definition: VecMapExpr.h:68
Header file for the RequiresEvaluation type trait.
Header file for basic type definitions.