43 })(std::forward<A>(a));
46 --------- same, no using std::-------
48 VIMEXPAND real abs2 isnan
57 [](auto const &x) {return @(x); })(std::forward<A>(a));
60 --------- mapping with matrix excluded -------
62 VIMEXPAND exp cos sin tan cosh sinh tanh acos asin atan log sqrt
69 auto @(A &&a) requires(get_algebra<A> != 'M') {
74 })(std::forward<A>(a));
100 })(std::forward<A>(a));
114 })(std::forward<A>(a));
128 })(std::forward<A>(a));
139 [](
auto const &x) {
return real(x); })(std::forward<A>(a));
150 [](
auto const &x) {
return abs2(x); })(std::forward<A>(a));
161 [](
auto const &x) {
return isnan(x); })(std::forward<A>(a));
170 auto exp(A &&a)
requires(get_algebra<A> !=
'M') {
175 })(std::forward<A>(a));
184 auto cos(A &&a)
requires(get_algebra<A> !=
'M') {
189 })(std::forward<A>(a));
198 auto sin(A &&a)
requires(get_algebra<A> !=
'M') {
203 })(std::forward<A>(a));
212 auto tan(A &&a)
requires(get_algebra<A> !=
'M') {
217 })(std::forward<A>(a));
226 auto cosh(A &&a)
requires(get_algebra<A> !=
'M') {
231 })(std::forward<A>(a));
240 auto sinh(A &&a)
requires(get_algebra<A> !=
'M') {
245 })(std::forward<A>(a));
254 auto tanh(A &&a)
requires(get_algebra<A> !=
'M') {
259 })(std::forward<A>(a));
268 auto acos(A &&a)
requires(get_algebra<A> !=
'M') {
273 })(std::forward<A>(a));
282 auto asin(A &&a)
requires(get_algebra<A> !=
'M') {
287 })(std::forward<A>(a));
296 auto atan(A &&a)
requires(get_algebra<A> !=
'M') {
301 })(std::forward<A>(a));
310 auto log(A &&a)
requires(get_algebra<A> !=
'M') {
315 })(std::forward<A>(a));
324 auto sqrt(A &&a)
requires(get_algebra<A> !=
'M') {
329 })(std::forward<A>(a));
Provides concepts for the nda library.
auto cos(A &&a)
Lazy, coefficient-wise cos function for non-matrix nda::Array types.
auto sinh(A &&a)
Lazy, coefficient-wise sinh function for non-matrix nda::Array types.
auto tanh(A &&a)
Lazy, coefficient-wise tanh function for non-matrix nda::Array types.
auto sin(A &&a)
Lazy, coefficient-wise sin function for non-matrix nda::Array types.
auto log(A &&a)
Lazy, coefficient-wise log function for non-matrix nda::Array types.
bool isnan(std::complex< double > const &z)
Check if a std::complex<double> is NaN.
auto floor(A &&a)
Lazy, coefficient-wise floor function for nda::Array types.
auto abs(A &&a)
Lazy, coefficient-wise abs function for nda::Array types.
double abs2(double x)
Get the squared absolute value of a double.
auto tan(A &&a)
Lazy, coefficient-wise tan function for non-matrix nda::Array types.
auto atan(A &&a)
Lazy, coefficient-wise atan function for non-matrix nda::Array types.
auto sqrt(A &&a)
Lazy, coefficient-wise sqrt function for non-matrix nda::Array types.
auto real(T t)
Get the real part of a scalar.
auto imag(A &&a)
Lazy, coefficient-wise imag function for nda::Array types.
auto cosh(A &&a)
Lazy, coefficient-wise cosh function for non-matrix nda::Array types.
auto asin(A &&a)
Lazy, coefficient-wise asin function for non-matrix nda::Array types.
auto acos(A &&a)
Lazy, coefficient-wise acos function for non-matrix nda::Array types.
auto exp(A &&a)
Lazy, coefficient-wise exp function for non-matrix nda::Array types.
mapped< F > map(F f)
Create a lazy function call expression on arrays/views.
Provides lazy function calls on arrays/views.
Provides some custom implementations of standard mathematical functions used for lazy,...
Provides type traits for the nda library.