35#ifndef _BLAZE_MATH_PROXY_PROXY_H_
36#define _BLAZE_MATH_PROXY_PROXY_H_
156 ,
typename RT =
int >
158 :
public If_t< IsVector_v<RT>
159 , If_t< IsDenseVector_v<RT>
160 , DenseVectorProxy<PT,RT>
161 , SparseVectorProxy<PT,RT> >
162 , If_t< IsMatrix_v<RT>
163 , If_t< IsDenseMatrix_v<RT>
164 , DenseMatrixProxy<PT,RT>
165 , SparseMatrixProxy<PT,RT> >
166 , If_t< IsComplex_v<RT>
167 , ComplexProxy<PT,RT>
168 , DefaultProxy<PT,RT> > > >
197template<
typename T,
typename PT,
typename RT >
198decltype(
auto)
operator+=( T& lhs,
const Proxy<PT,RT>& rhs );
200template<
typename T,
typename PT,
typename RT >
201decltype(
auto)
operator-=( T& lhs,
const Proxy<PT,RT>& rhs );
203template<
typename T,
typename PT,
typename RT >
204decltype(
auto)
operator/=( T& lhs,
const Proxy<PT,RT>& rhs );
206template<
typename T,
typename PT,
typename RT >
207decltype(
auto)
operator*=( T& lhs,
const Proxy<PT,RT>& rhs );
209template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
212template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
213decltype(
auto)
operator+(
const Proxy<PT,RT>& lhs,
const T& rhs );
215template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
216decltype(
auto)
operator+(
const T& lhs,
const Proxy<PT,RT>& rhs );
218template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
221template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
222decltype(
auto)
operator-(
const Proxy<PT,RT>& lhs,
const T& rhs );
224template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
225decltype(
auto)
operator-(
const T& lhs,
const Proxy<PT,RT>& rhs );
227template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
230template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
231decltype(
auto)
operator*(
const Proxy<PT,RT>& lhs,
const T& rhs );
233template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
234decltype(
auto)
operator*(
const T& lhs,
const Proxy<PT,RT>& rhs );
236template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
239template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
240decltype(
auto)
operator/(
const Proxy<PT,RT>& lhs,
const T& rhs );
242template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
243decltype(
auto)
operator/(
const T& lhs,
const Proxy<PT,RT>& rhs );
245template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
248template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
251template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
254template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
257template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
260template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
263template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
266template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
269template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
272template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
275template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
278template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
281template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
284template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
287template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
290template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
293template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
296template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
299template<
typename PT,
typename RT >
313template<
typename T,
typename PT,
typename RT >
316 return lhs += (*rhs).get();
329template<
typename T,
typename PT,
typename RT >
332 return lhs -= (*rhs).get();
345template<
typename T,
typename PT,
typename RT >
348 return lhs *= (*rhs).get();
361template<
typename T,
typename PT,
typename RT >
364 return lhs /= (*rhs).get();
377template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
380 return (*lhs).get() + (*rhs).get();
393template<
typename PT,
typename RT,
typename T,
typename >
394inline decltype(
auto)
operator+(
const Proxy<PT,RT>& lhs,
const T& rhs )
396 return (*lhs).get() + rhs;
409template<
typename T,
typename PT,
typename RT,
typename >
410inline decltype(
auto)
operator+(
const T& lhs,
const Proxy<PT,RT>& rhs )
412 return lhs + (*rhs).get();
425template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
428 return (*lhs).get() - (*rhs).get();
441template<
typename PT,
typename RT,
typename T,
typename >
442inline decltype(
auto)
operator-(
const Proxy<PT,RT>& lhs,
const T& rhs )
444 return (*lhs).get() - rhs;
457template<
typename T,
typename PT,
typename RT,
typename >
458inline decltype(
auto)
operator-(
const T& lhs,
const Proxy<PT,RT>& rhs )
460 return lhs - (*rhs).get();
473template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
476 return (*lhs).get() * (*rhs).get();
489template<
typename PT,
typename RT,
typename T,
typename >
490inline decltype(
auto)
operator*(
const Proxy<PT,RT>& lhs,
const T& rhs )
492 return (*lhs).get() * rhs;
505template<
typename T,
typename PT,
typename RT,
typename >
506inline decltype(
auto)
operator*(
const T& lhs,
const Proxy<PT,RT>& rhs )
508 return lhs * (*rhs).get();
521template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
524 return (*lhs).get() / (*rhs).get();
537template<
typename PT,
typename RT,
typename T,
typename >
538inline decltype(
auto)
operator/(
const Proxy<PT,RT>& lhs,
const T& rhs )
540 return (*lhs).get() / rhs;
553template<
typename T,
typename PT,
typename RT,
typename >
554inline decltype(
auto)
operator/(
const T& lhs,
const Proxy<PT,RT>& rhs )
556 return lhs / (*rhs).get();
569template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
572 return ( (*lhs).get() == (*rhs).get() );
585template<
typename PT,
typename RT,
typename T,
typename >
588 return ( (*lhs).get() == rhs );
601template<
typename T,
typename PT,
typename RT,
typename >
604 return ( lhs == (*rhs).get() );
617template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
620 return ( (*lhs).get() != (*rhs).get() );
633template<
typename PT,
typename RT,
typename T,
typename >
636 return ( (*lhs).get() != rhs );
649template<
typename T,
typename PT,
typename RT,
typename >
652 return ( lhs != (*rhs).get() );
665template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
668 return ( (*lhs).get() < (*rhs).get() );
681template<
typename PT,
typename RT,
typename T,
typename >
684 return ( (*lhs).get() < rhs );
697template<
typename T,
typename PT,
typename RT,
typename >
700 return ( lhs < rhs.get() );
713template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
716 return ( (*lhs).get() > (*rhs).get() );
729template<
typename PT,
typename RT,
typename T,
typename >
732 return ( (*lhs).get() > rhs );
745template<
typename T,
typename PT,
typename RT,
typename >
748 return ( lhs > (*rhs).get() );
761template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
764 return ( (*lhs).get() <= (*rhs).get() );
777template<
typename PT,
typename RT,
typename T,
typename >
780 return ( (*lhs).get() <= rhs );
793template<
typename T,
typename PT,
typename RT,
typename >
796 return ( lhs <= (*rhs).get() );
809template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
812 return ( (*lhs).get() >= (*rhs).get() );
825template<
typename PT,
typename RT,
typename T,
typename >
828 return ( (*lhs).get() >= rhs );
841template<
typename T,
typename PT,
typename RT,
typename >
844 return ( lhs >= (*rhs).get() );
857template<
typename PT,
typename RT >
860 return os << (*proxy).get();
876template<
typename PT,
typename RT >
877decltype(
auto)
abs(
const Proxy<PT,RT>& proxy );
879template<
typename PT,
typename RT >
880decltype(
auto)
sign(
const Proxy<PT,RT>& proxy );
882template<
typename PT,
typename RT >
883decltype(
auto)
floor(
const Proxy<PT,RT>& proxy );
885template<
typename PT,
typename RT >
886decltype(
auto)
ceil(
const Proxy<PT,RT>& proxy );
888template<
typename PT,
typename RT >
889decltype(
auto)
trunc(
const Proxy<PT,RT>& proxy );
891template<
typename PT,
typename RT >
892decltype(
auto)
round(
const Proxy<PT,RT>& proxy );
894template<
typename PT,
typename RT >
895decltype(
auto)
conj(
const Proxy<PT,RT>& proxy );
897template<
typename PT,
typename RT >
898decltype(
auto)
trans(
const Proxy<PT,RT>& proxy );
900template<
typename PT,
typename RT >
901decltype(
auto)
ctrans(
const Proxy<PT,RT>& proxy );
903template<
typename PT,
typename RT >
904decltype(
auto)
real(
const Proxy<PT,RT>& proxy );
906template<
typename PT,
typename RT >
907decltype(
auto)
imag(
const Proxy<PT,RT>& proxy );
909template<
typename PT,
typename RT >
910decltype(
auto)
sqrt(
const Proxy<PT,RT>& proxy );
912template<
typename PT,
typename RT >
913decltype(
auto)
invsqrt(
const Proxy<PT,RT>& proxy );
915template<
typename PT,
typename RT >
916decltype(
auto)
cbrt(
const Proxy<PT,RT>& proxy );
918template<
typename PT,
typename RT >
919decltype(
auto)
invcbrt(
const Proxy<PT,RT>& proxy );
921template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
922decltype(
auto)
hypot(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
924template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
925decltype(
auto)
hypot(
const Proxy<PT,RT>& lhs,
const T& rhs );
927template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
928decltype(
auto)
hypot(
const T& lhs,
const Proxy<PT,RT>& rhs );
930template<
typename PT,
typename RT,
typename ET >
931decltype(
auto)
pow(
const Proxy<PT,RT>& proxy,
const ET&
exp );
933template<
typename PT,
typename RT >
934decltype(
auto)
pow2(
const Proxy<PT,RT>& proxy );
936template<
typename PT,
typename RT >
937decltype(
auto)
pow3(
const Proxy<PT,RT>& proxy );
939template<
typename PT,
typename RT >
940decltype(
auto)
pow4(
const Proxy<PT,RT>& proxy );
942template<
typename PT,
typename RT >
943decltype(
auto)
exp(
const Proxy<PT,RT>& proxy );
945template<
typename PT,
typename RT >
946decltype(
auto)
exp2(
const Proxy<PT,RT>& proxy );
948template<
typename PT,
typename RT >
949decltype(
auto)
exp10(
const Proxy<PT,RT>& proxy );
951template<
typename PT,
typename RT >
952decltype(
auto)
log(
const Proxy<PT,RT>& proxy );
954template<
typename PT,
typename RT >
955decltype(
auto)
log2(
const Proxy<PT,RT>& proxy );
957template<
typename PT,
typename RT >
958decltype(
auto)
log10(
const Proxy<PT,RT>& proxy );
960template<
typename PT,
typename RT >
961decltype(
auto)
sin(
const Proxy<PT,RT>& proxy );
963template<
typename PT,
typename RT >
964decltype(
auto)
asin(
const Proxy<PT,RT>& proxy );
966template<
typename PT,
typename RT >
967decltype(
auto)
sinh(
const Proxy<PT,RT>& proxy );
969template<
typename PT,
typename RT >
970decltype(
auto)
asinh(
const Proxy<PT,RT>& proxy );
972template<
typename PT,
typename RT >
973decltype(
auto)
cos(
const Proxy<PT,RT>& proxy );
975template<
typename PT,
typename RT >
976decltype(
auto)
acos(
const Proxy<PT,RT>& proxy );
978template<
typename PT,
typename RT >
979decltype(
auto)
cosh(
const Proxy<PT,RT>& proxy );
981template<
typename PT,
typename RT >
982decltype(
auto)
acosh(
const Proxy<PT,RT>& proxy );
984template<
typename PT,
typename RT >
985decltype(
auto)
tan(
const Proxy<PT,RT>& proxy );
987template<
typename PT,
typename RT >
988decltype(
auto)
atan(
const Proxy<PT,RT>& proxy );
990template<
typename PT,
typename RT >
991decltype(
auto)
tanh(
const Proxy<PT,RT>& proxy );
993template<
typename PT,
typename RT >
994decltype(
auto)
atanh(
const Proxy<PT,RT>& proxy );
996template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
997decltype(
auto)
atan2(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
999template<
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
1000decltype(
auto)
atan2(
const Proxy<PT,RT>& lhs,
const T& rhs );
1002template<
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
1003decltype(
auto)
atan2(
const T& lhs,
const Proxy<PT,RT>& rhs );
1005template<
typename PT,
typename RT >
1006decltype(
auto)
erf(
const Proxy<PT,RT>& proxy );
1008template<
typename PT,
typename RT >
1009decltype(
auto)
erfc(
const Proxy<PT,RT>& proxy );
1011template<
typename PT,
typename RT >
1012void reset(
const Proxy<PT,RT>& proxy );
1014template<
typename PT,
typename RT >
1015void reset(
const Proxy<PT,RT>& proxy,
size_t i );
1017template<
typename PT,
typename RT >
1018void transpose(
const Proxy<PT,RT>& proxy );
1020template<
typename PT,
typename RT >
1023template<
typename PT,
typename RT >
1024void invert(
const Proxy<PT,RT>& proxy );
1026template< InversionFlag IF,
typename PT,
typename RT >
1027void invert(
const Proxy<PT,RT>& proxy );
1029template< RelaxationFlag RF,
typename PT,
typename RT >
1030bool isDefault(
const Proxy<PT,RT>& proxy );
1032template< RelaxationFlag RF,
typename PT,
typename RT >
1033bool isReal(
const Proxy<PT,RT>& proxy );
1035template< RelaxationFlag RF,
typename PT,
typename RT >
1036bool isZero(
const Proxy<PT,RT>& proxy );
1038template< RelaxationFlag RF,
typename PT,
typename RT >
1039bool isOne(
const Proxy<PT,RT>& proxy );
1041template<
typename PT,
typename RT >
1042bool isnan(
const Proxy<PT,RT>& proxy );
1044template<
typename PT,
typename RT >
1045bool isinf(
const Proxy<PT,RT>& proxy );
1047template<
typename PT,
typename RT >
1048bool isfinite(
const Proxy<PT,RT>& proxy );
1050template< RelaxationFlag RF,
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
1051bool equal(
const Proxy<PT1,RT1>& lhs,
const Proxy<PT2,RT2>& rhs );
1053template< RelaxationFlag RF,
typename PT,
typename RT,
typename T,
typename = DisableIf_t< IsProxy_v<T> > >
1054bool equal(
const Proxy<PT,RT>& lhs,
const T& rhs );
1056template< RelaxationFlag RF,
typename T,
typename PT,
typename RT,
typename = DisableIf_t< IsProxy_v<T> > >
1057bool equal(
const T& lhs,
const Proxy<PT,RT>& rhs );
1059template<
typename PT,
typename RT >
1060decltype(
auto)
evaluate(
const Proxy<PT,RT>& proxy );
1076template<
typename PT,
typename RT >
1081 return abs( (*proxy).get() );
1097template<
typename PT,
typename RT >
1102 return sign( (*proxy).get() );
1118template<
typename PT,
typename RT >
1123 return floor( (*proxy).get() );
1139template<
typename PT,
typename RT >
1144 return ceil( (*proxy).get() );
1160template<
typename PT,
typename RT >
1165 return trunc( (*proxy).get() );
1181template<
typename PT,
typename RT >
1186 return round( (*proxy).get() );
1202template<
typename PT,
typename RT >
1207 return conj( (*proxy).get() );
1222template<
typename PT,
typename RT >
1227 return trans( (*proxy).get() );
1242template<
typename PT,
typename RT >
1247 return ctrans( (*proxy).get() );
1263template<
typename PT,
typename RT >
1268 return real( (*proxy).get() );
1284template<
typename PT,
typename RT >
1289 return imag( (*proxy).get() );
1305template<
typename PT,
typename RT >
1310 return sqrt( (*proxy).get() );
1326template<
typename PT,
typename RT >
1331 return invsqrt( (*proxy).get() );
1347template<
typename PT,
typename RT >
1352 return cbrt( (*proxy).get() );
1368template<
typename PT,
typename RT >
1373 return invcbrt( (*proxy).get() );
1390template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
1395 return hypot( (*lhs).get(), (*rhs).get() );
1413template<
typename PT,
typename RT,
typename T,
typename >
1418 return hypot( (*lhs).get(), rhs );
1436template<
typename T,
typename PT,
typename RT,
typename >
1441 return hypot( lhs, (*rhs).get() );
1458template<
typename PT,
typename RT,
typename ET >
1463 return pow( (*proxy).get(),
exp );
1479template<
typename PT,
typename RT,
typename ET >
1484 return pow2( (*proxy).get() );
1500template<
typename PT,
typename RT,
typename ET >
1505 return pow3( (*proxy).get() );
1521template<
typename PT,
typename RT,
typename ET >
1526 return pow4( (*proxy).get() );
1542template<
typename PT,
typename RT >
1547 return exp( (*proxy).get() );
1563template<
typename PT,
typename RT >
1568 return exp2( (*proxy).get() );
1584template<
typename PT,
typename RT >
1589 return exp10( (*proxy).get() );
1605template<
typename PT,
typename RT >
1610 return log( (*proxy).get() );
1626template<
typename PT,
typename RT >
1631 return log2( (*proxy).get() );
1647template<
typename PT,
typename RT >
1652 return log10( (*proxy).get() );
1668template<
typename PT,
typename RT >
1673 return log1p( (*proxy).get() );
1691template<
typename PT,
typename RT >
1696 return lgamma( (*proxy).get() );
1712template<
typename PT,
typename RT >
1717 return sin( (*proxy).get() );
1733template<
typename PT,
typename RT >
1738 return asin( (*proxy).get() );
1754template<
typename PT,
typename RT >
1759 return sinh( (*proxy).get() );
1775template<
typename PT,
typename RT >
1780 return asinh( (*proxy).get() );
1796template<
typename PT,
typename RT >
1801 return cos( (*proxy).get() );
1817template<
typename PT,
typename RT >
1822 return acos( (*proxy).get() );
1838template<
typename PT,
typename RT >
1843 return cosh( (*proxy).get() );
1859template<
typename PT,
typename RT >
1864 return acosh( (*proxy).get() );
1880template<
typename PT,
typename RT >
1885 return tan( (*proxy).get() );
1901template<
typename PT,
typename RT >
1906 return atan( (*proxy).get() );
1922template<
typename PT,
typename RT >
1927 return tanh( (*proxy).get() );
1943template<
typename PT,
typename RT >
1948 return atanh( (*proxy).get() );
1966template<
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
1969 return atan2( (*lhs).get(), (*rhs).get() );
1987template<
typename PT,
typename RT,
typename T,
typename >
1990 return atan2( (*lhs).get(), rhs );
2008template<
typename T,
typename PT,
typename RT,
typename >
2011 return atan2( lhs, (*rhs).get() );
2027template<
typename PT,
typename RT >
2032 return erf( (*proxy).get() );
2049template<
typename PT,
typename RT >
2054 return erfc( (*proxy).get() );
2066template<
typename PT,
typename RT >
2071 reset( (*proxy).get() );
2089template<
typename PT,
typename RT >
2094 reset( (*proxy).get(), i );
2106template<
typename PT,
typename RT >
2111 clear( (*proxy).get() );
2133template<
typename PT,
typename RT >
2136 if( (*proxy).isRestricted() ) {
2162template<
typename PT,
typename RT >
2165 if( (*proxy).isRestricted() ) {
2202template<
typename PT,
typename RT >
2205 if( (*proxy).isRestricted() ) {
2209 invert( (*proxy).get() );
2251template< InversionFlag IF,
typename PT,
typename RT >
2254 if( (*proxy).isRestricted() ) {
2258 invert<IF>( (*proxy).get() );
2274template< RelaxationFlag RF,
typename PT,
typename RT >
2279 return isDefault<RF>( (*proxy).get() );
2296template< RelaxationFlag RF,
typename PT,
typename RT >
2301 return isReal<RF>( (*proxy).get() );
2316template< RelaxationFlag RF,
typename PT,
typename RT >
2321 return isZero<RF>( (*proxy).get() );
2336template< RelaxationFlag RF,
typename PT,
typename RT >
2341 return isOne<RF>( (*proxy).get() );
2356template<
typename PT,
typename RT >
2361 return isnan( (*proxy).get() );
2376template<
typename PT,
typename RT >
2381 return isinf( (*proxy).get() );
2397template<
typename PT,
typename RT >
2415template< RelaxationFlag RF,
typename PT1,
typename RT1,
typename PT2,
typename RT2 >
2418 return equal<RF>( (*lhs).get(), (*rhs).get() );
2431template< RelaxationFlag RF,
typename PT,
typename RT,
typename T,
typename >
2434 return equal<RF>( (*lhs).get(), rhs );
2447template< RelaxationFlag RF,
typename T,
typename PT,
typename RT,
typename >
2450 return equal<RF>( lhs, (*rhs).get() );
2466template<
typename PT,
typename RT >
Header file for auxiliary alias declarations.
Header file for the ComplexProxy class.
Header file for the conjugate shim.
Header file for the DefaultProxy class.
Header file for the DenseMatrixProxy class.
Header file for the DenseVectorProxy class.
Header file for the EnableIf class template.
Header file for the evaluate shim.
Header file for the If class template.
Header file for the imaginary shim.
Header file for the dense matrix inversion flags.
Header file for the invert shim.
Header file for the IsComplex type trait.
Header file for the isDefault shim.
Header file for the IsDenseMatrix type trait.
Header file for the IsDenseVector type trait.
Header file for the isfinite shim.
Header file for the isinf shim.
Header file for the IsMatrix type trait.
Header file for the isnan shim.
Header file for the isOne shim.
Header file for the IsProxy type trait.
Header file for the isReal shim.
Header file for the IsVector type trait.
Header file for the relaxation flag enumeration.
Header file for the SparseMatrixProxy class.
Header file for the SparseVectorProxy class.
Proxy base class.
Definition: Proxy.h:169
bool operator!=(const T &lhs, const Proxy< PT, RT > &rhs)
Inquality comparison between an object of different type and a Proxy object.
Definition: Proxy.h:650
bool operator>(const T &lhs, const Proxy< PT, RT > &rhs)
Greater-than comparison between an object of different type and a Proxy object.
Definition: Proxy.h:746
decltype(auto) erfc(const Proxy< PT, RT > &proxy)
Computing the complementary error function of the represented element.
Definition: Proxy.h:2050
decltype(auto) log(const Proxy< PT, RT > &proxy)
Computing the natural logarithm of the represented element.
Definition: Proxy.h:1606
bool isfinite(const Proxy< PT, RT > &proxy)
Returns whether the represented element is finite.
Definition: Proxy.h:2398
decltype(auto) atan2(const T &lhs, const Proxy< PT, RT > &rhs)
Computes the multi-valued inverse tangent of an object of different type and a Proxy object.
Definition: Proxy.h:2009
decltype(auto) evaluate(const Proxy< PT, RT > &proxy)
Returns whether the represented element is finite.
Definition: Proxy.h:2467
decltype(auto) ceil(const Proxy< PT, RT > &proxy)
Computes the smallest integral value that is not less than the represented element.
Definition: Proxy.h:1140
decltype(auto) pow4(const Proxy< PT, RT > &proxy)
Computing the quadruple value of the represented element.
Definition: Proxy.h:1522
decltype(auto) trunc(const Proxy< PT, RT > &proxy)
Computes the nearest integral value that is not greater than the represented element.
Definition: Proxy.h:1161
decltype(auto) imag(const Proxy< PT, RT > &proxy)
Computing the imaginary part of the represented element.
Definition: Proxy.h:1285
bool isOne(const Proxy< PT, RT > &proxy)
Returns whether the represented element is 1.
Definition: Proxy.h:2337
void reset(const Proxy< PT, RT > &proxy, size_t i)
Reset the specified row/column of the represented matrix.
Definition: Proxy.h:2090
decltype(auto) abs(const Proxy< PT, RT > &proxy)
Computing the absolute value of the represented element.
Definition: Proxy.h:1077
decltype(auto) tan(const Proxy< PT, RT > &proxy)
Computing the tangent of the represented element.
Definition: Proxy.h:1881
decltype(auto) log1p(const Proxy< PT, RT > &proxy)
Computing the natural logarithm of x+1 of the represented element.
Definition: Proxy.h:1669
decltype(auto) invcbrt(const Proxy< PT, RT > &proxy)
Computing the inverse cubic root of the represented element.
Definition: Proxy.h:1369
decltype(auto) exp10(const Proxy< PT, RT > &proxy)
Computing the base-10 exponential of the represented element.
Definition: Proxy.h:1585
decltype(auto) log10(const Proxy< PT, RT > &proxy)
Computing the common logarithm of the represented element.
Definition: Proxy.h:1648
decltype(auto) acosh(const Proxy< PT, RT > &proxy)
Computing the inverse hyperbolic cosine of the represented element.
Definition: Proxy.h:1860
bool isReal(const Proxy< PT, RT > &proxy)
Returns whether the element represents a real number.
Definition: Proxy.h:2297
decltype(auto) floor(const Proxy< PT, RT > &proxy)
Computes the largest integral value that is not greater than the represented element.
Definition: Proxy.h:1119
decltype(auto) log2(const Proxy< PT, RT > &proxy)
Computing the binary logarithm of the represented element.
Definition: Proxy.h:1627
decltype(auto) conj(const Proxy< PT, RT > &proxy)
Computing the complex conjugate of the represented element.
Definition: Proxy.h:1203
decltype(auto) cbrt(const Proxy< PT, RT > &proxy)
Computing the cubic root of the represented element.
Definition: Proxy.h:1348
decltype(auto) cosh(const Proxy< PT, RT > &proxy)
Computing the hyperbolic cosine of the represented element.
Definition: Proxy.h:1839
void transpose(const Proxy< PT, RT > &proxy)
In-place transpose of the represented matrix element.
Definition: Proxy.h:2134
bool equal(const T &lhs, const Proxy< PT, RT > &rhs)
Equality comparison between an object of different type and a Proxy object.
Definition: Proxy.h:2448
decltype(auto) cos(const Proxy< PT, RT > &proxy)
Computing the cosine of the represented element.
Definition: Proxy.h:1797
bool operator<=(const T &lhs, const Proxy< PT, RT > &rhs)
Less-or-equal-than comparison between an object of different type and a Proxy object.
Definition: Proxy.h:794
decltype(auto) asinh(const Proxy< PT, RT > &proxy)
Computing the inverse hyperbolic sine of the represented element.
Definition: Proxy.h:1776
decltype(auto) atan(const Proxy< PT, RT > &proxy)
Computing the inverse tangent of the represented element.
Definition: Proxy.h:1902
decltype(auto) pow2(const Proxy< PT, RT > &proxy)
Computing the square value of the represented element.
Definition: Proxy.h:1480
decltype(auto) ctrans(const Proxy< PT, RT > &proxy)
Computing the conjugate transpose of the represented element.
Definition: Proxy.h:1243
bool isinf(const Proxy< PT, RT > &proxy)
Returns whether the represented element is infinite.
Definition: Proxy.h:2377
decltype(auto) round(const Proxy< PT, RT > &proxy)
Computes the nearest integral value to the represented element.
Definition: Proxy.h:1182
bool operator<(const T &lhs, const Proxy< PT, RT > &rhs)
Less-than comparison between an object of different type and a Proxy object.
Definition: Proxy.h:698
decltype(auto) pow(const Proxy< PT, RT > &proxy, const ET &exp)
Computing the exponential value of the represented element.
Definition: Proxy.h:1459
decltype(auto) acos(const Proxy< PT, RT > &proxy)
Computing the inverse cosine of the represented element.
Definition: Proxy.h:1818
decltype(auto) exp2(const Proxy< PT, RT > &proxy)
Computing the base-2 exponential of the represented element.
Definition: Proxy.h:1564
decltype(auto) pow3(const Proxy< PT, RT > &proxy)
Computing the cube value of the represented element.
Definition: Proxy.h:1501
bool operator>=(const T &lhs, const Proxy< PT, RT > &rhs)
Greater-or-equal-than comparison between an object of different type and a Proxy object.
Definition: Proxy.h:842
std::ostream & operator<<(std::ostream &os, const Proxy< PT, RT > &proxy)
Global output operator for the Proxy class template.
Definition: Proxy.h:858
bool operator==(const T &lhs, const Proxy< PT, RT > &rhs)
Equality comparison between an object of different type and a Proxy object.
Definition: Proxy.h:602
decltype(auto) tanh(const Proxy< PT, RT > &proxy)
Computing the hyperbolic tangent of the represented element.
Definition: Proxy.h:1923
decltype(auto) atanh(const Proxy< PT, RT > &proxy)
Computing the inverse hyperbolic tangent of the represented element.
Definition: Proxy.h:1944
decltype(auto) erf(const Proxy< PT, RT > &proxy)
Computing the error function of the represented element.
Definition: Proxy.h:2028
decltype(auto) invsqrt(const Proxy< PT, RT > &proxy)
Computing the inverse square root of the represented element.
Definition: Proxy.h:1327
decltype(auto) trans(const Proxy< PT, RT > &proxy)
Computing the transpose of the represented element.
Definition: Proxy.h:1223
decltype(auto) asin(const Proxy< PT, RT > &proxy)
Computing the inverse sine of the represented element.
Definition: Proxy.h:1734
decltype(auto) hypot(const T &lhs, const Proxy< PT, RT > &rhs)
Computes the hypotenous of an object of different type and a Proxy object.
Definition: Proxy.h:1437
bool isDefault(const Proxy< PT, RT > &proxy)
Returns whether the represented element is in default state.
Definition: Proxy.h:2275
bool isZero(const Proxy< PT, RT > &proxy)
Returns whether the represented element is 0.
Definition: Proxy.h:2317
decltype(auto) sin(const Proxy< PT, RT > &proxy)
Computing the sine of the represented element.
Definition: Proxy.h:1713
decltype(auto) lgamma(const Proxy< PT, RT > &proxy)
Computing the natural logarithm of the absolute value of the gamma function of the represented elemen...
Definition: Proxy.h:1692
decltype(auto) sqrt(const Proxy< PT, RT > &proxy)
Computing the square root of the represented element.
Definition: Proxy.h:1306
void invert(const Proxy< PT, RT > &proxy)
In-place inversion of the represented element.
Definition: Proxy.h:2252
decltype(auto) exp(const Proxy< PT, RT > &proxy)
Computing the base-e exponential of the represented element.
Definition: Proxy.h:1543
bool isnan(const Proxy< PT, RT > &proxy)
Returns whether the represented element is not-a-number.
Definition: Proxy.h:2357
void clear(const Proxy< PT, RT > &proxy)
Clearing the represented element.
Definition: Proxy.h:2107
decltype(auto) sinh(const Proxy< PT, RT > &proxy)
Computing the hyperbolic sine of the represented element.
Definition: Proxy.h:1755
decltype(auto) sign(const Proxy< PT, RT > &proxy)
Evaluating the sign of the represented element.
Definition: Proxy.h:1098
decltype(auto) real(const Proxy< PT, RT > &proxy)
Computing the real part of the represented element.
Definition: Proxy.h:1264
void ctranspose(const Proxy< PT, RT > &proxy)
In-place conjugate transpose of the represented matrix element.
Definition: Proxy.h:2163
typename If< Condition >::template Type< T1, T2 > If_t
Auxiliary alias template for the If class template.
Definition: If.h:108
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.
Definition: Exception.h:235
Header file for the exception macros of the math module.
Header file for the abs shim.
Header file for the acos shim.
Header file for the acosh shim.
Header file for the asin shim.
Header file for the asinh shim.
Header file for the atan2 shim.
Header file for the atan shim.
Header file for the atanh shim.
Header file for the cbrt shim.
Header file for the ceil shim.
Header file for the clear shim.
Header file for the cos shim.
Header file for the cosh shim.
Header file for the erf shim.
Header file for the erfc shim.
Header file for the exp10 shim.
Header file for the exp2 shim.
Header file for the exp shim.
Header file for the floor shim.
Header file for the invcbrt shim.
Header file for the invsqrt shim.
Header file for the isZero shim.
Header file for the log10 shim.
Header file for the log2 shim.
Header file for the log shim.
Header file for the pow2 shim.
Header file for the pow3 shim.
Header file for the pow4 shim.
Header file for the pow shim.
Header file for the real shim.
Header file for the reset shim.
Header file for the round shim.
Header file for the sign shim.
Header file for the sin shim.
Header file for the sinh shim.
Header file for the sqrt shim.
Header file for the tan shim.
Header file for the tanh shim.
Header file for the trunc shim.
Header file for the generic max algorithm.
Header file for the generic min algorithm.