4 #ifndef DP3_DDECAL_GAIN_SOLVERS_KERNELS_MATRIXCOMPLEX2X2_H_
5 #define DP3_DDECAL_GAIN_SOLVERS_KERNELS_MATRIXCOMPLEX2X2_H_
18 __device__
cuM2x2(T a, T b, T c, T d) {
25 inline __device__
const T&
operator[](
int i)
const {
return data[i]; }
26 inline __device__ T&
operator[](
int i) {
return data[i]; }
44 inline __device__
const T&
operator[](
int i)
const {
return data[i]; }
45 inline __device__ T&
operator[](
int i) {
return data[i]; }
57 cuCaddf(a[2], b[2]), cuCaddf(a[3], b[3]));
63 cuCsubf(a[2], b[2]), cuCsubf(a[3], b[3]));
69 cuCaddf(cuCmulf(a[0], b[1]), cuCmulf(a[1], b[3])),
70 cuCaddf(cuCmulf(a[2], b[0]), cuCmulf(a[3], b[2])),
71 cuCaddf(cuCmulf(a[2], b[1]), cuCmulf(a[3], b[3])));
77 cuCadd(cuCmul(a[0], b[1]), cuCmul(a[1], b[3])),
78 cuCadd(cuCmul(a[2], b[0]), cuCmul(a[3], b[2])),
79 cuCadd(cuCmul(a[2], b[1]), cuCmul(a[3], b[3])));
95 make_cuDoubleComplex(x[0]), make_cuDoubleComplex(x[1]),
96 make_cuDoubleComplex(x[2]), make_cuDoubleComplex(x[3])
107 cuCmulf(a[1], b[2]), cuCmulf(a[1], b[3]));
113 cuCmul(a[1], b[2]), cuCmul(a[1], b[3]));
cuM2x2< cuDoubleComplex > cuM2x2DoubleComplex
Definition: MatrixComplex2x2.h:52
cuM2x2< cuFloatComplex > cuM2x2FloatComplex
Definition: MatrixComplex2x2.h:51
__device__ cuM2x2FloatComplex operator*(const cuM2x2FloatComplex &a, const cuM2x2FloatComplex &b)
Definition: MatrixComplex2x2.h:66
__device__ cuM2x2FloatComplex cuConj(const cuM2x2FloatComplex &x)
Definition: MatrixComplex2x2.h:82
__device__ cuM2x2FloatComplex operator-(const cuM2x2FloatComplex &a, const cuM2x2FloatComplex &b)
Definition: MatrixComplex2x2.h:60
__device__ cuM2x2FloatComplex operator+(const cuM2x2FloatComplex &a, const cuM2x2FloatComplex &b)
Definition: MatrixComplex2x2.h:54
__device__ cuM2x2DoubleComplex make_cuM2x2ComplexDouble(const cuM2x2FloatComplex &x)
Definition: MatrixComplex2x2.h:93
Definition: MatrixComplex2x2.h:33
__device__ cuM2x2Diagonal(T a, T b)
Definition: MatrixComplex2x2.h:39
__device__ const T & operator[](int i) const
Definition: MatrixComplex2x2.h:44
__device__ cuM2x2Diagonal()
Definition: MatrixComplex2x2.h:35
__device__ T & operator[](int i)
Definition: MatrixComplex2x2.h:45
Definition: MatrixComplex2x2.h:10
__device__ cuM2x2()
Definition: MatrixComplex2x2.h:12
__device__ T & operator[](int i)
Definition: MatrixComplex2x2.h:26
__device__ cuM2x2(T a, T b, T c, T d)
Definition: MatrixComplex2x2.h:18
__device__ const T & operator[](int i) const
Definition: MatrixComplex2x2.h:25