2#include "ff/precision.h"
9#if TINKER_REAL_SIZE == 8
13# define make_real2(x, y) make_double2((x), (y))
14# define make_real3(x, y, z) make_double3((x), (y), (z))
15# define make_real4(x, y, z, w) make_double4((x), (y), (z), (w))
16#elif TINKER_REAL_SIZE == 4
20# define make_real2(x, y) make_float2((x), (y))
21# define make_real3(x, y, z) make_float3((x), (y), (z))
22# define make_real4(x, y, z, w) make_float4((x), (y), (z), (w))
29 return make_real3(-a.
x, -a.
y, -a.
z);
36 return make_real3(a.
x + b.
x, a.
y + b.
y, a.
z + b.
z);
42 return make_real3(a.
x - b.
x, a.
y - b.
y, a.
z - b.
z);
48 return make_real3(a * b.
x, a * b.
y, a * b.
z);
54 return make_real3(a * b.
x, a * b.
y, a * b.
z);
86 return a.
x * b.
x + a.
y * b.
y + a.
z * b.
z;
92 return a.
x * bx + a.
y * by + a.
z * bz;
98 return ax * b.
x + ay * b.
y + az * b.
z;
104 return ax * bx + ay * by + az * bz;
112 return make_real3(
dot3(xx, xy, xz, v),
dot3(xy, yy, yz, v),
113 dot3(xz, yz, zz, v));
120 return make_real3(ay * bz - az * by, az * bx - ax * bz, ax * by - ay * bx);
126 return cross(ax, ay, az, b.
x, b.
y, b.
z);
132 return cross(a.
x, a.
y, a.
z, bx, by, bz);
float x
Definition: acc/realndef.h:49
float y
Definition: acc/realndef.h:49
float z
Definition: acc/realndef.h:49
#define SEQ_ROUTINE
Definition: acc/seqdef.h:7
Definition: acc/realndef.h:43
Definition: acc/realndef.h:48
Definition: acc/realndef.h:53
__device__ real3 cross(real ax, real ay, real az, real bx, real by, real bz)
Definition: realn.h:118
__device__ void operator*=(real3 &a, real b)
Definition: realn.h:75
__device__ real dot3(real3 a, real3 b)
Definition: realn.h:84
float4 real4
Definition: realn.h:19
float2 real2
Definition: realn.h:17
__device__ real3 operator+(real3 a, real3 b)
Definition: realn.h:34
__device__ real3 operator-(real3 a)
Definition: realn.h:27
__device__ real3 matvec(real xx, real xy, real xz, real yy, real yz, real zz, real3 v)
Definition: realn.h:109
float3 real3
Definition: realn.h:18
__device__ void operator-=(real3 &a, real3 b)
Definition: realn.h:67
__device__ void operator+=(real3 &a, real3 b)
Definition: realn.h:59
__device__ real3 operator*(real a, real3 b)
Definition: realn.h:46
float real
Definition: precision.h:80