36 for ( i = 0; i < 4; i++ ) {
37 for ( j = 0; j < 4; j++ ) {
45 static const EvtTensor4C g_metric( 1.0, -1.0, -1.0, -1.0 );
54 for ( i = 0; i < 4; i++ ) {
55 for ( j = 0; j < 4; j++ ) {
68 for ( i = 0; i < 4; i++ ) {
69 for ( j = 0; j < 4; j++ ) {
100 double e = p4.
get( 0 );
111 double bx, by, bz, gamma, b2;
119 double bxx = bx * bx;
120 double byy = by * by;
121 double bzz = bz * bz;
123 b2 = bxx + byy + bzz;
131 gamma = 1.0 / sqrt( 1 - b2 );
140 lambda[0][1] = gamma * bx;
141 lambda[1][0] = gamma * bx;
142 lambda[0][2] = gamma * by;
143 lambda[2][0] = gamma * by;
144 lambda[0][3] = gamma * bz;
145 lambda[3][0] = gamma * bz;
147 lambda[1][1] = 1.0 + ( gamma - 1.0 ) * bx * bx / b2;
148 lambda[2][2] = 1.0 + ( gamma - 1.0 ) * by * by / b2;
149 lambda[3][3] = 1.0 + ( gamma - 1.0 ) * bz * bz / b2;
151 lambda[1][2] = ( gamma - 1.0 ) * bx * by / b2;
152 lambda[2][1] = ( gamma - 1.0 ) * bx * by / b2;
154 lambda[1][3] = ( gamma - 1.0 ) * bx * bz / b2;
155 lambda[3][1] = ( gamma - 1.0 ) * bx * bz / b2;
157 lambda[3][2] = ( gamma - 1.0 ) * bz * by / b2;
158 lambda[2][3] = ( gamma - 1.0 ) * bz * by / b2;
160 for ( i = 0; i < 4; i++ ) {
161 for ( j = 0; j < 4; j++ ) {
163 for ( k = 0; k < 4; k++ ) {
164 tt[i][j] = tt[i][j] +
lambda[j][k] *
m_t[i][k];
169 for ( i = 0; i < 4; i++ ) {
170 for ( j = 0; j < 4; j++ ) {
172 for ( k = 0; k < 4; k++ ) {
182 for ( i = 0; i < 4; i++ ) {
183 for ( j = 0; j < 4; j++ ) {
193 for ( i = 0; i < 4; i++ ) {
194 for ( j = 0; j < 4; j++ ) {
226 for ( i = 0; i < 4; i++ ) {
227 for ( j = 0; j < 4; j++ ) {
228 m_t[i][j] += t2.
get( i, j );
238 for ( i = 0; i < 4; i++ ) {
239 for ( j = 0; j < 4; j++ ) {
240 m_t[i][j] -= t2.
get( i, j );
250 for ( i = 0; i < 4; i++ ) {
251 for ( j = 0; j < 4; j++ ) {
272 for ( i = 0; i < 4; i++ ) {
273 for ( j = 0; j < 4; j++ ) {
295 for ( i = 0; i < 4; i++ ) {
296 for ( j = 0; j < 4; j++ ) {
297 if ( ( i == 0 && j != 0 ) || ( j == 0 && i != 0 ) ) {
298 sum -= t1.
m_t[i][j] * t2.
m_t[i][j];
300 sum += t1.
m_t[i][j] * t2.
m_t[i][j];
314 for ( i = 0; i < 4; i++ ) {
315 for ( j = 0; j < 4; j++ ) {
316 temp.
set( i, j, c1.
get( i ) * c2.
get( j ) );
328 for ( i = 0; i < 4; i++ ) {
329 for ( j = 0; j < 4; j++ ) {
330 temp.
set( i, j, c1.
get( i ) * c2.
get( j ) );
342 for ( i = 0; i < 4; i++ ) {
343 for ( j = 0; j < 4; j++ ) {
355 for ( i = 0; i < 4; i++ ) {
356 for ( j = 0; j < 4; j++ ) {
372 temp.
set( 0, 1, t2.
get( 3, 2 ) - t2.
get( 2, 3 ) );
373 temp.
set( 0, 2, -t2.
get( 3, 1 ) + t2.
get( 1, 3 ) );
374 temp.
set( 0, 3, t2.
get( 2, 1 ) - t2.
get( 1, 2 ) );
376 temp.
set( 1, 2, -t2.
get( 3, 0 ) + t2.
get( 0, 3 ) );
377 temp.
set( 1, 3, t2.
get( 2, 0 ) - t2.
get( 0, 2 ) );
379 temp.
set( 2, 3, -t2.
get( 1, 0 ) + t2.
get( 0, 1 ) );
381 temp.
set( 1, 0, -temp.
get( 0, 1 ) );
382 temp.
set( 2, 0, -temp.
get( 0, 2 ) );
383 temp.
set( 3, 0, -temp.
get( 0, 3 ) );
385 temp.
set( 2, 1, -temp.
get( 1, 2 ) );
386 temp.
set( 3, 1, -temp.
get( 1, 3 ) );
388 temp.
set( 3, 2, -temp.
get( 2, 3 ) );
399 for ( i = 0; i < 4; i++ ) {
400 for ( j = 0; j < 4; j++ ) {
415 for ( i = 0; i < 4; i++ ) {
416 for ( j = 0; j < 4; j++ ) {
417 c = t1.
get( i, 0 ) * t2.
get( j, 0 ) -
418 t1.
get( i, 1 ) * t2.
get( j, 1 ) -
419 t1.
get( i, 2 ) * t2.
get( j, 2 ) - t1.
get( i, 3 ) * t2.
get( j, 3 );
434 for ( i = 0; i < 4; i++ ) {
435 for ( j = 0; j < 4; j++ ) {
436 c = t1.
get( 0, i ) * t2.
get( 0, j ) -
437 t1.
get( 1, i ) * t2.
get( 1, j ) -
438 t1.
get( 2, i ) * t2.
get( 2, j ) - t1.
get( 3, i ) * t2.
get( 3, j );
452 for ( i = 0; i < 4; i++ ) {
466 for ( i = 0; i < 4; i++ ) {
480 for ( i = 0; i < 4; i++ ) {
494 for ( i = 0; i < 4; i++ ) {
505 double sp, st, sk, cp, ct, ck;
523 lambda[1][1] = ck * ct * cp - sk * sp;
524 lambda[1][2] = -sk * ct * cp - ck * sp;
527 lambda[2][1] = ck * ct * sp + sk * cp;
528 lambda[2][2] = -sk * ct * sp + ck * cp;
537 for ( i = 0; i < 4; i++ ) {
538 for ( j = 0; j < 4; j++ ) {
540 for ( k = 0; k < 4; k++ ) {
546 for ( i = 0; i < 4; i++ ) {
547 for ( j = 0; j < 4; j++ ) {
549 for ( k = 0; k < 4; k++ ) {
double lambda(double q, double m1, double m2)
EvtTensor4C dual(const EvtTensor4C &t2)
ostream & operator<<(ostream &s, const EvtTensor4C &t)
EvtComplex cont(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C rotateEuler(const EvtTensor4C &rs, double alpha, double beta, double gamma)
EvtTensor4C cont22(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C cont11(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C boostTo(const EvtTensor4C &rs, const EvtVector4R p4)
EvtTensor4C operator*(const EvtTensor4C &t1, const EvtComplex &c)
EvtTensor4C conj(const EvtTensor4C &t2)
void setdiag(double t00, double t11, double t22, double t33)
void set(int i, int j, const EvtComplex &c)
const EvtComplex & get(int i, int j) const
EvtTensor4C & operator=(const EvtTensor4C &t1)
EvtTensor4C & operator-=(const EvtTensor4C &t2)
EvtVector4C cont1(const EvtVector4C &v4) const
static const EvtTensor4C & g()
void applyBoostTo(const EvtVector4R &p4)
EvtTensor4C & addDirProd(const EvtVector4R &p1, const EvtVector4R &p2)
EvtTensor4C & operator*=(const EvtComplex &c)
EvtVector4C cont2(const EvtVector4C &v4) const
EvtTensor4C & operator+=(const EvtTensor4C &t2)
void applyRotateEuler(double alpha, double beta, double gamma)
friend EvtTensor4C conj(const EvtTensor4C &t2)
void set(int, const EvtComplex &)
const EvtComplex & get(int) const
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)