1 package JSci.maths.algebras; 2 3 import JSci.maths.*; 4 import JSci.maths.matrices.AbstractComplexMatrix; 5 import JSci.maths.matrices.AbstractComplexSquareMatrix; 6 import JSci.maths.matrices.ComplexSquareMatrix; 7 import JSci.maths.vectors.AbstractDoubleVector; 8 import JSci.maths.vectors.DoubleVector; 9 import JSci.maths.fields.ComplexField; 10 11 18 public final class so3_1Dim4 extends LieAlgebra { 19 private final static Complex t1[][]={ 21 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 22 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 23 {Complex.ZERO,Complex.ZERO,Complex.ZERO,ComplexField.MINUS_I}, 24 {Complex.ZERO,Complex.ZERO,Complex.I,Complex.ZERO} 25 }; 26 private final static Complex t2[][]={ 27 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 28 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.I}, 29 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 30 {Complex.ZERO,ComplexField.MINUS_I,Complex.ZERO,Complex.ZERO} 31 }; 32 private final static Complex t3[][]={ 33 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 34 {Complex.ZERO,Complex.ZERO,ComplexField.MINUS_I,Complex.ZERO}, 35 {Complex.ZERO,Complex.I,Complex.ZERO,Complex.ZERO}, 36 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO} 37 }; 38 private final static Complex t4[][]={ 40 {Complex.ZERO,ComplexField.MINUS_I,Complex.ZERO,Complex.ZERO}, 41 {ComplexField.MINUS_I,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 42 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 43 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO} 44 }; 45 private final static Complex t5[][]={ 46 {Complex.ZERO,Complex.ZERO,ComplexField.MINUS_I,Complex.ZERO}, 47 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 48 {ComplexField.MINUS_I,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 49 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO} 50 }; 51 private final static Complex t6[][]={ 52 {Complex.ZERO,Complex.ZERO,Complex.ZERO,ComplexField.MINUS_I}, 53 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 54 {Complex.ZERO,Complex.ZERO,Complex.ZERO,Complex.ZERO}, 55 {ComplexField.MINUS_I,Complex.ZERO,Complex.ZERO,Complex.ZERO} 56 }; 57 60 private final static AbstractComplexSquareMatrix basisMatrices[]={ 61 new ComplexSquareMatrix(t1), 62 new ComplexSquareMatrix(t2), 63 new ComplexSquareMatrix(t3), 64 new ComplexSquareMatrix(t4), 65 new ComplexSquareMatrix(t5), 66 new ComplexSquareMatrix(t6) 67 }; 68 69 private final static so3_1Dim4 _instance = new so3_1Dim4(); 70 73 private so3_1Dim4() { 74 super("so(3,1) [4]"); 75 } 76 79 public static final so3_1Dim4 getInstance() { 80 return _instance; 81 } 82 85 public AbstractComplexSquareMatrix getElement(final AbstractDoubleVector v) { 86 AbstractComplexMatrix m=basisMatrices[0].scalarMultiply(v.getComponent(0)); 87 m=m.add(basisMatrices[1].scalarMultiply(v.getComponent(1))); 88 m=m.add(basisMatrices[2].scalarMultiply(v.getComponent(2))); 89 m=m.add(basisMatrices[3].scalarMultiply(v.getComponent(3))); 90 m=m.add(basisMatrices[4].scalarMultiply(v.getComponent(4))); 91 m=m.add(basisMatrices[5].scalarMultiply(v.getComponent(5))); 92 return (AbstractComplexSquareMatrix)m.scalarMultiply(Complex.I); 93 } 94 98 public AbstractDoubleVector multiply(final AbstractDoubleVector a, final AbstractDoubleVector b) { 99 double array[]=new double[6]; 100 array[0]=a.getComponent(2)*b.getComponent(1)-a.getComponent(1)*b.getComponent(2)+ 101 a.getComponent(4)*b.getComponent(5)-a.getComponent(5)*b.getComponent(4); 102 array[1]=a.getComponent(0)*b.getComponent(2)-a.getComponent(2)*b.getComponent(0)+ 103 a.getComponent(5)*b.getComponent(3)-a.getComponent(3)*b.getComponent(5); 104 array[2]=a.getComponent(1)*b.getComponent(0)-a.getComponent(0)*b.getComponent(1)+ 105 a.getComponent(3)*b.getComponent(4)-a.getComponent(4)*b.getComponent(3); 106 array[3]=a.getComponent(2)*b.getComponent(4)-a.getComponent(1)*b.getComponent(5)+ 107 a.getComponent(5)*b.getComponent(1)-a.getComponent(4)*b.getComponent(2); 108 array[4]=a.getComponent(0)*b.getComponent(5)-a.getComponent(2)*b.getComponent(3)+ 109 a.getComponent(3)*b.getComponent(2)-a.getComponent(5)*b.getComponent(0); 110 array[5]=a.getComponent(1)*b.getComponent(3)-a.getComponent(0)*b.getComponent(4)+ 111 a.getComponent(4)*b.getComponent(0)-a.getComponent(3)*b.getComponent(1); 112 return new DoubleVector(array); 113 } 114 117 public AbstractComplexSquareMatrix[] basis() { 118 return basisMatrices; 119 } 120 } 121 122 | Popular Tags |