30#ifndef GRID_TENSOR_UNARY_H
31#define GRID_TENSOR_UNARY_H
36 template<class obj> accelerator_inline auto func(const iScalar<obj> &z) -> iScalar<obj> \
39 ret._internal = func( (z._internal)); \
42 template<class obj,int N> accelerator_inline auto func(const iVector<obj,N> &z) -> iVector<obj,N> \
45 for(int c1=0;c1<N;c1++){ \
46 ret._internal[c1] = func( (z._internal[c1])); \
50 template<class obj,int N> accelerator_inline auto func(const iMatrix<obj,N> &z) -> iMatrix<obj,N> \
53 for(int c1=0;c1<N;c1++){ \
54 for(int c2=0;c2<N;c2++){ \
55 ret._internal[c1][c2] = func( (z._internal[c1][c2])); \
61#define BINARY_RSCALAR(func,scal) \
62 template<class obj> accelerator_inline iScalar<obj> func(const iScalar<obj> &z,scal y) \
65 ret._internal = func(z._internal,y); \
68 template<class obj,int N> accelerator_inline iVector<obj,N> func(const iVector<obj,N> &z,scal y) \
71 for(int c1=0;c1<N;c1++){ \
72 ret._internal[c1] = func(z._internal[c1],y); \
76 template<class obj,int N> accelerator_inline iMatrix<obj,N> func(const iMatrix<obj,N> &z, scal y) \
79 for(int c1=0;c1<N;c1++){ \
80 for(int c2=0;c2<N;c2++){ \
81 ret._internal[c1][c2] = func(z._internal[c1][c2],y); \
106 for(
int c1=0;c1<N;c1++){
114 for(
int c1=0;c1<N;c1++){
115 for(
int c2=0;c2<N;c2++){
130 for(
int c1=0;c1<N;c1++){
138 for(
int c1=0;c1<N;c1++){
139 for(
int c2=0;c2<N;c2++){
#define accelerator_inline
accelerator_inline Grid_simd< S, V > cos(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > abs(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > asin(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > sin(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > Not(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > acos(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > exp(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > sqrt(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > log(const Grid_simd< S, V > &r)
Lattice< obj > mod(const Lattice< obj > &rhs_i, Integer y)
Lattice< obj > div(const Lattice< obj > &rhs_i, Integer y)
Lattice< obj > pow(const Lattice< obj > &rhs_i, RealD y)
#define NAMESPACE_BEGIN(A)
accelerator_inline auto toComplex(const iScalar< obj > &z) -> typename iScalar< obj >::Complexified
#define BINARY_RSCALAR(func, scal)
accelerator_inline auto toReal(const iScalar< obj > &z) -> typename iScalar< obj >::Realified