35 #ifndef _BLAZE_MATH_PROXY_PROXY_H_
36 #define _BLAZE_MATH_PROXY_PROXY_H_
137 template<
typename PT
138 ,
typename RT =
int >
139 class Proxy :
public If_< IsVector<RT>
140 , If_< IsDenseVector<RT>
141 , DenseVectorProxy<PT,RT>
142 , SparseVectorProxy<PT,RT> >
144 , If_< IsDenseMatrix<RT>
145 , DenseMatrixProxy<PT,RT>
146 , SparseMatrixProxy<PT,RT> >
148 , ComplexProxy<PT,RT>
149 , DefaultProxy<PT,RT> > > >
165 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
166 inline AddExprTrait_<RT1,RT2>
167 operator+(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
169 template<
typename PT,
typename RT,
typename T >
170 inline DisableIf_< IsProxy<T>, AddExprTrait_<RT,T> >
171 operator+(
const Proxy<PT,RT>& lhs,
const T& rhs );
173 template<
typename T,
typename PT,
typename RT >
174 inline DisableIf_< IsProxy<T>, AddExprTrait_<T,RT> >
175 operator+(
const T& lhs,
const Proxy<PT,RT>& rhs );
177 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
178 inline SubExprTrait_<RT1,RT2>
179 operator-(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
181 template<
typename PT,
typename RT,
typename T >
182 inline DisableIf_< IsProxy<T>, SubExprTrait_<RT,T> >
183 operator-(
const Proxy<PT,RT>& lhs,
const T& rhs );
185 template<
typename T,
typename PT,
typename RT >
186 inline DisableIf_< IsProxy<T>, SubExprTrait_<T,RT> >
187 operator-(
const T& lhs,
const Proxy<PT,RT>& rhs );
189 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
190 inline MultExprTrait_<RT1,RT2>
191 operator*(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
193 template<
typename PT,
typename RT,
typename T >
194 inline DisableIf_< IsProxy<T>, MultExprTrait_<RT,T> >
195 operator*(
const Proxy<PT,RT>& lhs,
const T& rhs );
197 template<
typename T,
typename PT,
typename RT >
198 inline DisableIf_< IsProxy<T>, MultExprTrait_<T,RT> >
199 operator*(
const T& lhs,
const Proxy<PT,RT>& rhs );
201 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
202 inline DivExprTrait_<RT1,RT2>
203 operator/(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
205 template<
typename PT,
typename RT,
typename T >
206 inline DisableIf_< IsProxy<T>, DivExprTrait_<RT,T> >
207 operator/(
const Proxy<PT,RT>& lhs,
const T& rhs );
209 template<
typename T,
typename PT,
typename RT >
210 inline DisableIf_< IsProxy<T>, DivExprTrait_<T,RT> >
211 operator/(
const T& lhs,
const Proxy<PT,RT>& rhs );
213 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
214 inline bool operator==(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
216 template<
typename PT,
typename RT,
typename T >
217 inline DisableIf_< IsProxy<T>,
bool >
218 operator==(
const Proxy<PT,RT>& lhs,
const T& rhs );
220 template<
typename T,
typename PT,
typename RT >
221 inline DisableIf_< IsProxy<T>,
bool >
222 operator==(
const T& lhs,
const Proxy<PT,RT>& rhs );
224 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
225 inline bool operator!=(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
227 template<
typename PT,
typename RT,
typename T >
228 inline DisableIf_< IsProxy<T>,
bool >
229 operator!=(
const Proxy<PT,RT>& lhs,
const T& rhs );
231 template<
typename T,
typename PT,
typename RT >
232 inline DisableIf_< IsProxy<T>,
bool >
233 operator!=(
const T& lhs,
const Proxy<PT,RT>& rhs );
235 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
236 inline bool operator<( const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
238 template<
typename PT,
typename RT,
typename T >
239 inline DisableIf_< IsProxy<T>,
bool >
240 operator<( const Proxy<PT,RT>& lhs,
const T& rhs );
242 template<
typename T,
typename PT,
typename RT >
243 inline DisableIf_< IsProxy<T>,
bool >
244 operator<( const T& lhs, const Proxy<PT,RT>& rhs );
246 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
247 inline bool operator>(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
249 template<
typename PT,
typename RT,
typename T >
250 inline DisableIf_< IsProxy<T>,
bool >
251 operator>(
const Proxy<PT,RT>& lhs,
const T& rhs );
253 template<
typename T,
typename PT,
typename RT >
254 inline DisableIf_< IsProxy<T>,
bool >
255 operator>(
const T& lhs,
const Proxy<PT,RT>& rhs );
257 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
258 inline bool operator<=( const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
260 template<
typename PT,
typename RT,
typename T >
261 inline DisableIf_< IsProxy<T>,
bool >
262 operator<=( const Proxy<PT,RT>& lhs,
const T& rhs );
264 template<
typename T,
typename PT,
typename RT >
265 inline DisableIf_< IsProxy<T>,
bool >
266 operator<=( const T& lhs, const Proxy<PT,RT>& rhs );
268 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
269 inline bool operator>=(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
271 template<
typename PT,
typename RT,
typename T >
272 inline DisableIf_< IsProxy<T>,
bool >
273 operator>=(
const Proxy<PT,RT>& lhs,
const T& rhs );
275 template<
typename T,
typename PT,
typename RT >
276 inline DisableIf_< IsProxy<T>,
bool >
277 operator>=(
const T& lhs,
const Proxy<PT,RT>& rhs );
279 template<
typename PT,
typename RT >
280 inline std::ostream& operator<<( std::ostream& os, const Proxy<PT,RT>& proxy );
293 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
294 inline AddExprTrait_<RT1,RT2>
297 return (~lhs).get() + (~rhs).
get();
310 template<
typename PT,
typename RT,
typename T >
311 inline DisableIf_< IsProxy<T>, AddExprTrait_<RT,T> >
314 return (~lhs).get() + rhs;
327 template<
typename T,
typename PT,
typename RT >
328 inline DisableIf_< IsProxy<T>, AddExprTrait_<T,RT> >
331 return lhs + (~rhs).
get();
344 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
345 inline SubExprTrait_<RT1,RT2>
348 return (~lhs).get() - (~rhs).
get();
361 template<
typename PT,
typename RT,
typename T >
362 inline DisableIf_< IsProxy<T>, SubExprTrait_<RT,T> >
365 return (~lhs).get() - rhs;
378 template<
typename T,
typename PT,
typename RT >
379 inline DisableIf_< IsProxy<T>, SubExprTrait_<T,RT> >
382 return lhs - (~rhs).
get();
395 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
396 inline MultExprTrait_<RT1,RT2>
399 return (~lhs).get() * (~rhs).
get();
412 template<
typename PT,
typename RT,
typename T >
413 inline DisableIf_< IsProxy<T>, MultExprTrait_<RT,T> >
416 return (~lhs).get() * rhs;
429 template<
typename T,
typename PT,
typename RT >
430 inline DisableIf_< IsProxy<T>, MultExprTrait_<T,RT> >
433 return lhs * (~rhs).
get();
446 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
447 inline DivExprTrait_<RT1,RT2>
450 return (~lhs).get() / (~rhs).
get();
463 template<
typename PT,
typename RT,
typename T >
464 inline DisableIf_< IsProxy<T>, DivExprTrait_<RT,T> >
467 return (~lhs).get() / rhs;
480 template<
typename T,
typename PT,
typename RT >
481 inline DisableIf_< IsProxy<T>, DivExprTrait_<T,RT> >
484 return lhs / (~rhs).
get();
497 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
500 return ( (~lhs).
get() == (~rhs).
get() );
513 template<
typename PT,
typename RT,
typename T >
514 inline DisableIf_< IsProxy<T>,
bool >
517 return ( (~lhs).
get() == rhs );
530 template<
typename T,
typename PT,
typename RT >
531 inline DisableIf_< IsProxy<T>,
bool >
534 return ( lhs == (~rhs).
get() );
547 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
550 return ( (~lhs).
get() != (~rhs).
get() );
563 template<
typename PT,
typename RT,
typename T >
564 inline DisableIf_< IsProxy<T>,
bool >
567 return ( (~lhs).
get() != rhs );
580 template<
typename T,
typename PT,
typename RT >
581 inline DisableIf_< IsProxy<T>,
bool >
584 return ( lhs != (~rhs).
get() );
597 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
600 return ( (~lhs).get() < (~rhs).
get() );
613 template<
typename PT,
typename RT,
typename T >
614 inline DisableIf_< IsProxy<T>,
bool >
615 operator<( const Proxy<PT,RT>& lhs,
const T& rhs )
617 return ( (~lhs).get() < rhs );
630 template<
typename T,
typename PT,
typename RT >
631 inline DisableIf_< IsProxy<T>,
bool >
632 operator<( const T& lhs, const Proxy<PT,RT>& rhs )
634 return ( lhs < rhs.get() );
647 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
650 return ( (~lhs).
get() > (~rhs).
get() );
663 template<
typename PT,
typename RT,
typename T >
664 inline DisableIf_< IsProxy<T>,
bool >
667 return ( (~lhs).
get() > rhs );
680 template<
typename T,
typename PT,
typename RT >
681 inline DisableIf_< IsProxy<T>,
bool >
684 return ( lhs > (~rhs).
get() );
697 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
700 return ( (~lhs).get() <= (~rhs).
get() );
713 template<
typename PT,
typename RT,
typename T >
714 inline DisableIf_< IsProxy<T>,
bool >
715 operator<=( const Proxy<PT,RT>& lhs,
const T& rhs )
717 return ( (~lhs).get() <= rhs );
730 template<
typename T,
typename PT,
typename RT >
731 inline DisableIf_< IsProxy<T>,
bool >
732 operator<=( const T& lhs, const Proxy<PT,RT>& rhs )
734 return ( lhs <= (~rhs).get() );
747 template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
750 return ( (~lhs).
get() >= (~rhs).
get() );
763 template<
typename PT,
typename RT,
typename T >
764 inline DisableIf_< IsProxy<T>,
bool >
767 return ( (~lhs).
get() >= rhs );
780 template<
typename T,
typename PT,
typename RT >
781 inline DisableIf_< IsProxy<T>,
bool >
784 return ( lhs >= (~rhs).
get() );
797 template<
typename PT,
typename RT >
798 inline std::ostream& operator<<( std::ostream& os, const Proxy<PT,RT>& proxy )
800 return os << (~proxy).
get();
816 template<
typename PT,
typename RT >
817 inline auto trans(
const Proxy<PT,RT>& proxy )
818 -> decltype(
trans( std::declval< RepresentedType_<PT> >() ) );
820 template<
typename PT,
typename RT >
821 inline auto ctrans(
const Proxy<PT,RT>& proxy )
822 -> decltype(
ctrans( std::declval< RepresentedType_<PT> >() ) );
824 template<
typename PT,
typename RT >
825 inline auto abs(
const Proxy<PT,RT>& proxy )
826 -> decltype(
abs( std::declval< RepresentedType_<PT> >() ) );
828 template<
typename PT,
typename RT >
829 inline auto conj(
const Proxy<PT,RT>& proxy )
830 -> decltype(
conj( std::declval< RepresentedType_<PT> >() ) );
832 template<
typename PT,
typename RT >
833 inline auto real(
const Proxy<PT,RT>& proxy )
834 -> decltype(
real( std::declval< RepresentedType_<PT> >() ) );
836 template<
typename PT,
typename RT >
837 inline auto imag(
const Proxy<PT,RT>& proxy )
838 -> decltype(
imag( std::declval< RepresentedType_<PT> >() ) );
840 template<
typename PT,
typename RT >
841 inline auto sqrt(
const Proxy<PT,RT>& proxy )
842 -> decltype(
sqrt( std::declval< RepresentedType_<PT> >() ) );
844 template<
typename PT,
typename RT >
845 inline auto invsqrt(
const Proxy<PT,RT>& proxy )
846 -> decltype(
invsqrt( std::declval< RepresentedType_<PT> >() ) );
848 template<
typename PT,
typename RT >
849 inline auto cbrt(
const Proxy<PT,RT>& proxy )
850 -> decltype(
cbrt( std::declval< RepresentedType_<PT> >() ) );
852 template<
typename PT,
typename RT >
853 inline auto invcbrt(
const Proxy<PT,RT>& proxy )
854 -> decltype(
invcbrt( std::declval< RepresentedType_<PT> >() ) );
856 template<
typename PT,
typename RT >
857 inline auto floor(
const Proxy<PT,RT>& proxy )
858 -> decltype(
floor( std::declval< RepresentedType_<PT> >() ) );
860 template<
typename PT,
typename RT >
861 inline auto ceil(
const Proxy<PT,RT>& proxy )
862 -> decltype(
ceil( std::declval< RepresentedType_<PT> >() ) );
864 template<
typename PT,
typename RT,
typename ET >
865 inline auto pow(
const Proxy<PT,RT>& proxy,
const ET&
exp )
866 -> decltype(
pow( std::declval< RepresentedType_<PT> >(),
exp ) );
868 template<
typename PT,
typename RT >
869 inline auto exp(
const Proxy<PT,RT>& proxy )
870 -> decltype(
exp( std::declval< RepresentedType_<PT> >() ) );
872 template<
typename PT,
typename RT >
873 inline auto sin(
const Proxy<PT,RT>& proxy )
874 -> decltype(
sin( std::declval< RepresentedType_<PT> >() ) );
876 template<
typename PT,
typename RT >
877 inline auto asin(
const Proxy<PT,RT>& proxy )
878 -> decltype(
asin( std::declval< RepresentedType_<PT> >() ) );
880 template<
typename PT,
typename RT >
881 inline auto sinh(
const Proxy<PT,RT>& proxy )
882 -> decltype(
sinh( std::declval< RepresentedType_<PT> >() ) );
884 template<
typename PT,
typename RT >
885 inline auto asinh(
const Proxy<PT,RT>& proxy )
886 -> decltype(
asinh( std::declval< RepresentedType_<PT> >() ) );
888 template<
typename PT,
typename RT >
889 inline auto cos(
const Proxy<PT,RT>& proxy )
890 -> decltype(
cos( std::declval< RepresentedType_<PT> >() ) );
892 template<
typename PT,
typename RT >
893 inline auto acos(
const Proxy<PT,RT>& proxy )
894 -> decltype(
acos( std::declval< RepresentedType_<PT> >() ) );
896 template<
typename PT,
typename RT >
897 inline auto cosh(
const Proxy<PT,RT>& proxy )
898 -> decltype(
cosh( std::declval< RepresentedType_<PT> >() ) );
900 template<
typename PT,
typename RT >
901 inline auto acosh(
const Proxy<PT,RT>& proxy )
902 -> decltype(
acosh( std::declval< RepresentedType_<PT> >() ) );
904 template<
typename PT,
typename RT >
905 inline auto tan(
const Proxy<PT,RT>& proxy )
906 -> decltype(
tan( std::declval< RepresentedType_<PT> >() ) );
908 template<
typename PT,
typename RT >
909 inline auto atan(
const Proxy<PT,RT>& proxy )
910 -> decltype(
atan( std::declval< RepresentedType_<PT> >() ) );
912 template<
typename PT,
typename RT >
913 inline auto tanh(
const Proxy<PT,RT>& proxy )
914 -> decltype(
tanh( std::declval< RepresentedType_<PT> >() ) );
916 template<
typename PT,
typename RT >
917 inline auto atanh(
const Proxy<PT,RT>& proxy )
918 -> decltype(
atanh( std::declval< RepresentedType_<PT> >() ) );
920 template<
typename PT,
typename RT >
921 inline void transpose(
const Proxy<PT,RT>& proxy );
923 template<
typename PT,
typename RT >
924 inline void ctranspose(
const Proxy<PT,RT>& proxy );
926 template<
typename PT,
typename RT >
927 inline void invert(
const Proxy<PT,RT>& proxy );
929 template< InversionFlag IF,
typename PT,
typename RT >
930 inline void invert(
const Proxy<PT,RT>& proxy );
932 template<
typename PT,
typename RT >
933 inline bool isReal(
const Proxy<PT,RT>& proxy );
935 template<
typename PT,
typename RT >
936 inline bool isZero(
const Proxy<PT,RT>& proxy );
938 template<
typename PT,
typename RT >
939 inline bool isOne(
const Proxy<PT,RT>& proxy );
941 template<
typename PT,
typename RT >
942 inline bool isnan(
const Proxy<PT,RT>& proxy );
957 template<
typename PT,
typename RT >
963 return trans( (~proxy).
get() );
978 template<
typename PT,
typename RT >
984 return ctrans( (~proxy).
get() );
1000 template<
typename PT,
typename RT >
1006 return abs( (~proxy).
get() );
1022 template<
typename PT,
typename RT >
1028 return conj( (~proxy).
get() );
1044 template<
typename PT,
typename RT >
1050 return real( (~proxy).
get() );
1066 template<
typename PT,
typename RT >
1072 return imag( (~proxy).
get() );
1088 template<
typename PT,
typename RT >
1094 return sqrt( (~proxy).
get() );
1110 template<
typename PT,
typename RT >
1116 return invsqrt( (~proxy).
get() );
1132 template<
typename PT,
typename RT >
1138 return cbrt( (~proxy).
get() );
1154 template<
typename PT,
typename RT >
1160 return invcbrt( (~proxy).
get() );
1176 template<
typename PT,
typename RT >
1182 return floor( (~proxy).
get() );
1198 template<
typename PT,
typename RT >
1204 return ceil( (~proxy).
get() );
1221 template<
typename PT,
typename RT,
typename ET >
1227 return pow( (~proxy).
get(),
exp );
1243 template<
typename PT,
typename RT >
1249 return exp( (~proxy).
get() );
1265 template<
typename PT,
typename RT >
1271 return sin( (~proxy).
get() );
1287 template<
typename PT,
typename RT >
1293 return asin( (~proxy).
get() );
1309 template<
typename PT,
typename RT >
1315 return sinh( (~proxy).
get() );
1331 template<
typename PT,
typename RT >
1337 return asinh( (~proxy).
get() );
1353 template<
typename PT,
typename RT >
1359 return cos( (~proxy).
get() );
1375 template<
typename PT,
typename RT >
1381 return acos( (~proxy).
get() );
1397 template<
typename PT,
typename RT >
1403 return cosh( (~proxy).
get() );
1419 template<
typename PT,
typename RT >
1425 return acosh( (~proxy).
get() );
1441 template<
typename PT,
typename RT >
1447 return tan( (~proxy).
get() );
1463 template<
typename PT,
typename RT >
1469 return atan( (~proxy).
get() );
1485 template<
typename PT,
typename RT >
1491 return tanh( (~proxy).
get() );
1507 template<
typename PT,
typename RT >
1513 return atanh( (~proxy).
get() );
1529 template<
typename PT,
typename RT >
1535 return erf( (~proxy).
get() );
1552 template<
typename PT,
typename RT >
1558 return erfc( (~proxy).
get() );
1580 template<
typename PT,
typename RT >
1583 if( (~proxy).isRestricted() ) {
1609 template<
typename PT,
typename RT >
1612 if( (~proxy).isRestricted() ) {
1649 template<
typename PT,
typename RT >
1652 if( (~proxy).isRestricted() ) {
1656 invert( (~proxy).
get() );
1698 template< InversionFlag IF,
typename PT,
typename RT >
1701 if( (~proxy).isRestricted() ) {
1705 invert<IF>( (~proxy).
get() );
1722 template<
typename PT,
typename RT >
1727 return isReal( (~proxy).
get() );
1742 template<
typename PT,
typename RT >
1747 return isZero( (~proxy).
get() );
1762 template<
typename PT,
typename RT >
1767 return isOne( (~proxy).
get() );
1782 template<
typename PT,
typename RT >
1787 return isnan( (~proxy).
get() );
Header file for the isnan shim.
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.This macro encapsulates the default way o...
Definition: Exception.h:235
bool isOne(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 1.
Definition: DiagonalProxy.h:635
const DMatForEachExpr< MT, Conj, SO > conj(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the complex conjugate of each single element of dm.
Definition: DMatForEachExpr.h:1158
Header file for auxiliary alias declarations.
const DMatForEachExpr< MT, Sin, SO > sin(const DenseMatrix< MT, SO > &dm)
Computes the sine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1557
Header file for the acos shim.
Header file for the asin shim.
const DMatDMatMultExpr< T1, T2 > operator*(const DenseMatrix< T1, false > &lhs, const DenseMatrix< T2, false > &rhs)
Multiplication operator for the multiplication of two row-major dense matrices ( ).
Definition: DMatDMatMultExpr.h:7800
Header file for the cosh shim.
Header file for the SparseVectorProxy class.
Header file for the imaginary shim.
Proxy base class.The Proxy class is a base class for all proxy classes within the Blaze library that ...
Definition: Forward.h:51
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:595
const DMatForEachExpr< MT, Tanh, SO > tanh(const DenseMatrix< MT, SO > &dm)
Computes the hyperbolic tangent for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1849
const CTransExprTrait_< MT > ctrans(const DenseMatrix< MT, SO > &dm)
Returns the conjugate transpose matrix of dm.
Definition: DMatForEachExpr.h:1195
Header file for the tan shim.
Header file for the dense matrix inversion flags.
Header file for the DefaultProxy class.
const DMatForEachExpr< MT, Cos, SO > cos(const DenseMatrix< MT, SO > &dm)
Computes the cosine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1672
const DMatForEachExpr< MT, Atan, SO > atan(const DenseMatrix< MT, SO > &dm)
Computes the inverse tangent for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1818
const DMatForEachExpr< MT, Imag, SO > imag(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the imaginary part of each single element of dm.
Definition: DMatForEachExpr.h:1251
const DenseIterator< Type, AF > operator+(const DenseIterator< Type, AF > &it, ptrdiff_t inc) noexcept
Addition between a DenseIterator and an integral value.
Definition: DenseIterator.h:699
Header file for the DenseMatrixProxy class.
bool operator>(const NegativeAccuracy< A > &lhs, const T &rhs)
Greater-than comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:366
BLAZE_ALWAYS_INLINE void ctranspose(Matrix< MT, SO > &matrix)
In-place conjugate transpose of the given matrix.
Definition: Matrix.h:590
Header file for the abs shim.
Header file for the AddExprTrait class template.
bool operator>=(const NegativeAccuracy< A > &, const T &rhs)
Greater-or-equal-than comparison between a NegativeAccuracy object and a floating point value...
Definition: Accuracy.h:442
Header file for the pow shim.
Header file for the invert shim.
const DMatForEachExpr< MT, Sinh, SO > sinh(const DenseMatrix< MT, SO > &dm)
Computes the hyperbolic sine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1616
const DenseIterator< Type, AF > operator-(const DenseIterator< Type, AF > &it, ptrdiff_t inc) noexcept
Subtraction between a DenseIterator and an integral value.
Definition: DenseIterator.h:731
Header file for the DenseVectorProxy class.
const DMatForEachExpr< MT, Exp, SO > exp(const DenseMatrix< MT, SO > &dm)
Computes for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1467
Header file for the IsMatrix type trait.
Header file for the DivExprTrait class template.
Header file for the MultExprTrait class template.
void invert(const HermitianProxy< MT > &proxy)
In-place inversion of the represented element.
Definition: HermitianProxy.h:741
Header file for the sqrt shim.
const DMatForEachExpr< MT, Acosh, SO > acosh(const DenseMatrix< MT, SO > &dm)
Computes the inverse hyperbolic cosine for each single element of the dense matrix dm...
Definition: DMatForEachExpr.h:1762
const EnableIf_< IsNumeric< T2 >, DivExprTrait_< T1, T2 > > operator/(const DenseMatrix< T1, SO > &mat, T2 scalar)
Division operator for the division of a dense matrix by a scalar value ( ).
Definition: DMatScalarDivExpr.h:966
Header file for the DisableIf class template.
Header file for the floor shim.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the cos shim.
Header file for the If class template.
const DMatForEachExpr< MT, Abs, SO > abs(const DenseMatrix< MT, SO > &dm)
Applies the abs() function to each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1074
Header file for the ComplexProxy class.
Header file for the erf shim.
Header file for the isZero shim.
const DMatForEachExpr< MT, InvCbrt, SO > invcbrt(const DenseMatrix< MT, SO > &dm)
Computes the inverse cubic root of each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1375
const DMatForEachExpr< MT, Floor, SO > floor(const DenseMatrix< MT, SO > &dm)
Applies the floor() function to each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1102
Header file for the sin shim.
Header file for the invsqrt shim.
const DMatForEachExpr< MT, Erf, SO > erf(const DenseMatrix< MT, SO > &dm)
Computes the error function for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1908
const DMatForEachExpr< MT, Tan, SO > tan(const DenseMatrix< MT, SO > &dm)
Computes the tangent for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1790
bool isnan(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is not a number.
Definition: DiagonalProxy.h:655
const DMatForEachExpr< MT, Pow< ET >, SO > pow(const DenseMatrix< MT, SO > &dm, ET exp)
Computes the exponential value for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1437
Header file for the SparseMatrixProxy class.
Header file for the exception macros of the math module.
Header file for the erfc shim.
Header file for the IsVector type trait.
Header file for the IsDenseMatrix type trait.
const DMatForEachExpr< MT, Cosh, SO > cosh(const DenseMatrix< MT, SO > &dm)
Computes the hyperbolic cosine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1731
const DMatForEachExpr< MT, Sqrt, SO > sqrt(const DenseMatrix< MT, SO > &dm)
Computes the square root of each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1282
const DMatForEachExpr< MT, Real, SO > real(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the real part of each single element of dm.
Definition: DMatForEachExpr.h:1223
const DMatForEachExpr< MT, Atanh, SO > atanh(const DenseMatrix< MT, SO > &dm)
Computes the inverse hyperbolic tangent for each single element of the dense matrix dm...
Definition: DMatForEachExpr.h:1880
Header file for the isOne shim.
const DMatForEachExpr< MT, Acos, SO > acos(const DenseMatrix< MT, SO > &dm)
Computes the inverse cosine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1703
Header file for the conjugate shim.
const DMatForEachExpr< MT, InvSqrt, SO > invsqrt(const DenseMatrix< MT, SO > &dm)
Computes the inverse square root of each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1313
const DMatForEachExpr< MT, Cbrt, SO > cbrt(const DenseMatrix< MT, SO > &dm)
Computes the cubic root of each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1344
Header file for the acosh shim.
Header file for the cbrt shim.
const DMatForEachExpr< MT, Asin, SO > asin(const DenseMatrix< MT, SO > &dm)
Computes the inverse sine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1588
typename If< T1, T2, T3 >::Type If_
Auxiliary alias declaration for the If class template.The If_ alias declaration provides a convenient...
Definition: If.h:160
Header file for the atanh shim.
Header file for the invcbrt shim.
Header file for the IsProxy type trait.
typename T::RepresentedType RepresentedType_
Alias declaration for nested RepresentedType type definitions.The RepresentedType_ alias declaration ...
Definition: Aliases.h:303
Header file for the asinh shim.
Header file for the tanh shim.
Header file for the IsDenseVector type trait.
const DMatForEachExpr< MT, Erfc, SO > erfc(const DenseMatrix< MT, SO > &dm)
Computes the complementary error function for each single element of the dense matrix dm...
Definition: DMatForEachExpr.h:1936
const DMatTransExpr< MT,!SO > trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:950
bool isZero(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is 0.
Definition: DiagonalProxy.h:615
const DMatForEachExpr< MT, Asinh, SO > asinh(const DenseMatrix< MT, SO > &dm)
Computes the inverse hyperbolic sine for each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1644
bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:249
bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:289
Header file for the IsComplex type trait.
Header file for the exp shim.
Header file for the real shim.
Header file for the sinh shim.
Header file for the SubExprTrait class template.
Header file for the isReal shim.
Header file for the atan shim.
const DMatForEachExpr< MT, Ceil, SO > ceil(const DenseMatrix< MT, SO > &dm)
Applies the ceil() function to each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1130
Header file for the ceil shim.
BLAZE_ALWAYS_INLINE void transpose(Matrix< MT, SO > &matrix)
In-place transpose of the given matrix.
Definition: Matrix.h:564