33 tmp.
xx = tmp.
yy = tmp.
zz = v1;
39 tmp.
xx = v1.
x; tmp.
xy = 0; tmp.
xz = 0;
40 tmp.
yx = 0; tmp.
yy = v1.
y; tmp.
yz = 0;
41 tmp.
zx = 0; tmp.
zy = 0; tmp.
zz = v1.
z;
47 tmp.
xx = v1.
x; tmp.
xy = v2.
x; tmp.
xz = v2.
y;
48 tmp.
yx = v2.
x; tmp.
yy = v1.
y; tmp.
yz = v2.
z;
49 tmp.
zx = v2.
y; tmp.
zy = v2.
z; tmp.
zz = v1.
z;
55 tmp.
xx = v1.
x; tmp.
xy = v2.
x; tmp.
xz = v2.
y;
56 tmp.
yx = 0; tmp.
yy = v1.
y; tmp.
yz = v2.
z;
57 tmp.
zx = 0; tmp.
zy = 0; tmp.
zz = v1.
z;
90 xx *= r2;
xy *= r2;
xz *= r2;
91 yx *= r2;
yy *= r2;
yz *= r2;
92 zx *= r2;
zy *= r2;
zz *= r2;
97 xx /= r2;
xy /= r2;
xz /= r2;
98 yx /= r2;
yy /= r2;
yz /= r2;
99 zx /= r2;
zy /= r2;
zz /= r2;
113 return ( ! ( t1 == t2 ) );
154 tmp.
x = t1.
xx * v2.
x + t1.
xy * v2.
y + t1.
xz * v2.
z;
155 tmp.
y = t1.
yx * v2.
x + t1.
yy * v2.
y + t1.
yz * v2.
z;
156 tmp.
z = t1.
zx * v2.
x + t1.
zy * v2.
y + t1.
zz * v2.
z;
162 tmp.
x = t2.
xx * v1.
x + t2.
yx * v1.
y + t2.
zx * v1.
z;
163 tmp.
y = t2.
xy * v1.
x + t2.
yy * v1.
y + t2.
zy * v1.
z;
164 tmp.
z = t2.
xz * v1.
x + t2.
yz * v1.
y + t2.
zz * v1.
z;
190 tmp.
zx = 0; tmp.
zy = 0; tmp.
zz = t1.
zz;
203 return (t1.
xx + t1.
yy + t1.
zz);
243 tmp.
xx = v1.
x * v2.
x;
244 tmp.
xy = v1.
x * v2.
y;
245 tmp.
xz = v1.
x * v2.
z;
246 tmp.
yx = v1.
y * v2.
x;
247 tmp.
yy = v1.
y * v2.
y;
248 tmp.
yz = v1.
y * v2.
z;
249 tmp.
zx = v1.
z * v2.
x;
250 tmp.
zy = v1.
z * v2.
y;
251 tmp.
zz = v1.
z * v2.
z;
256 xx += v1.
x * v2.
x * scale;
257 xy += v1.
x * v2.
y * scale;
258 xz += v1.
x * v2.
z * scale;
259 yx += v1.
y * v2.
x * scale;
260 yy += v1.
y * v2.
y * scale;
261 yz += v1.
y * v2.
z * scale;
262 zx += v1.
z * v2.
x * scale;
263 zy += v1.
z * v2.
y * scale;
264 zz += v1.
z * v2.
z * scale;
static NAMD_HOST_DEVICE Tensor symmetric(const Vector &v1, const Vector &v2)
NAMD_HOST_DEVICE Tensor & operator=(const Tensor &t2)
NAMD_HOST_DEVICE friend Vector operator*(const Vector &v1, const Tensor &t2)
NAMD_HOST_DEVICE Tensor outer(const Vector &v1, const Vector &v2)
NAMD_HOST_DEVICE friend Vector diagonal(const Tensor &t1)
NAMD_HOST_DEVICE Tensor & operator-=(const Tensor &t2)
NAMD_HOST_DEVICE friend Vector operator*(const Tensor &t1, const Vector &v2)
NAMD_HOST_DEVICE friend Tensor transpose(const Tensor &t1)
static NAMD_HOST_DEVICE Tensor identity(BigReal v1=1.0)
NAMD_HOST_DEVICE friend Tensor operator*(const Tensor &t1, const BigReal &r2)
NAMD_HOST_DEVICE friend Vector off_diagonal(const Tensor &t1)
NAMD_HOST_DEVICE friend Tensor operator/(const Tensor &t1, const BigReal &r2)
NAMD_HOST_DEVICE friend BigReal trace(const Tensor &t1)
NAMD_HOST_DEVICE Tensor & operator=(const BigReal &r2)
static NAMD_HOST_DEVICE Tensor diagonal(const Vector &v1)
NAMD_HOST_DEVICE friend Tensor operator-(const Tensor &t1)
NAMD_HOST_DEVICE Tensor(void)
NAMD_HOST_DEVICE friend Tensor operator*(const BigReal &r1, const Tensor &t2)
NAMD_HOST_DEVICE friend Tensor symmetric(const Tensor &t1)
NAMD_HOST_DEVICE Tensor & operator*=(const BigReal &r2)
NAMD_HOST_DEVICE friend Tensor operator-(const Tensor &t1, const Tensor &t2)
NAMD_HOST_DEVICE friend Tensor operator+(const Tensor &t1, const Tensor &t2)
static NAMD_HOST_DEVICE Tensor triangular(const Vector &v1, const Vector &v2)
NAMD_HOST_DEVICE friend Tensor outer(const Vector &v1, const Vector &v2)
NAMD_HOST_DEVICE friend Tensor triangular(const Tensor &t1)
NAMD_HOST_DEVICE ~Tensor(void)
NAMD_HOST_DEVICE Tensor & operator+=(const Tensor &t2)
NAMD_HOST_DEVICE void outerAdd(BigReal scale, const Vector &v1, const Vector &v2)
NAMD_HOST_DEVICE friend int operator==(const Tensor &t1, const Tensor &t2)
NAMD_HOST_DEVICE Tensor & operator/=(const BigReal &r2)
NAMD_HOST_DEVICE friend int operator!=(const Tensor &t1, const Tensor &t2)
NAMD_HOST_DEVICE Tensor(const Tensor &t2)