summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2012-03-27 14:08:35 (GMT)
committerDavid A. Madore <david+git@madore.org>2012-03-27 17:37:08 (GMT)
commit2ee3f055058d10ec7a50182e102ba0a235878f71 (patch)
tree8f0340e704f6b38bb0c95cb881603bd0ecfc8c7d
parentd64c37f6f24abbfb7e02b8f9ea670a9b5e794f2e (diff)
downloadephem-2ee3f055058d10ec7a50182e102ba0a235878f71.zip
ephem-2ee3f055058d10ec7a50182e102ba0a235878f71.tar.gz
ephem-2ee3f055058d10ec7a50182e102ba0a235878f71.tar.bz2
Simple matrix library + formula for precession.
-rw-r--r--org/madore/ephem/Comput.java5
-rw-r--r--org/madore/ephem/Frames.java85
-rw-r--r--org/madore/ephem/Precession.java22
-rw-r--r--org/madore/ephem/Smart97.java46
-rw-r--r--org/madore/ephem/smart97-simp.dat392
5 files changed, 111 insertions, 439 deletions
diff --git a/org/madore/ephem/Comput.java b/org/madore/ephem/Comput.java
index dee77f0..214d5e8 100644
--- a/org/madore/ephem/Comput.java
+++ b/org/madore/ephem/Comput.java
@@ -6,6 +6,9 @@ import java.util.Arrays;
public final class Comput {
+ public static final double degree = Math.PI/180;
+ public static final double arcsecond = degree/3600;
+
public static final double ipow(double x, int n) {
if ( n == 0 )
return 1;
@@ -127,7 +130,7 @@ public final class Comput {
public Polynomial(Double[] c) {
this(Arrays.asList(c));
}
- public Polynomial(double[] c) {
+ public Polynomial(double... c) {
this(boxDoubleArray(c));
}
public double v(double t) {
diff --git a/org/madore/ephem/Frames.java b/org/madore/ephem/Frames.java
new file mode 100644
index 0000000..e85412c
--- /dev/null
+++ b/org/madore/ephem/Frames.java
@@ -0,0 +1,85 @@
+package org.madore.ephem;
+
+public final class Frames {
+
+ private static double[] unboxDoubleArray(Double[] c) {
+ double[] unboxed = new double[c.length];
+ for ( int i=0 ; i<unboxed.length ; i++ )
+ unboxed[i] = c[i];
+ return unboxed;
+ }
+
+ public static final class Vector {
+ double[] crd;
+ public Vector(double... crd) {
+ if ( crd.length != 3 )
+ throw new IllegalArgumentException("Vector constructor expects 3 coordinates");
+ this.crd = crd;
+ }
+ public Vector(Double... crd) {
+ this(unboxDoubleArray(crd));
+ }
+ public double dotprod(Vector v) {
+ double res = 0;
+ for ( int i=0 ; i<3 ; i++ )
+ res += crd[i]*v.crd[i];
+ return res;
+ }
+ public double sqnorm() {
+ double res = 0;
+ for ( int i=0 ; i<3 ; i++ )
+ res += crd[i]*crd[i];
+ return res;
+ }
+ }
+
+ public static final class RotationMatrix {
+ double[][] mat;
+ public RotationMatrix(double[][] mat) {
+ if ( mat.length != 3 )
+ throw new IllegalArgumentException("RotationMatrix constructor expects 3 lines");
+ for ( int i=0 ; i<3 ; i++ )
+ if ( mat[i].length != 3 )
+ throw new IllegalArgumentException("RotationMatrix constructor expects 3 columns");
+ this.mat = mat;
+ }
+ private static double[][] matOfVectors(Vector[] vecs) {
+ double[][] mat = new double[vecs.length][];
+ for ( int i=0 ; i<mat.length ; i++ )
+ mat[i] = vecs[i].crd;
+ return mat;
+ }
+ public RotationMatrix(Vector... vecs) {
+ this(matOfVectors(vecs));
+ }
+ public Vector apply(double[] v) {
+ double out[] = new double[3];
+ for ( int i=0 ; i<3 ; i++ )
+ for ( int j=0 ; j<3 ; j++ )
+ out[i] += v[j]*mat[j][i];
+ return new Vector(out);
+ }
+ public Vector apply(Vector v) {
+ return apply(v.crd);
+ }
+ public RotationMatrix apply(RotationMatrix mv) {
+ return new RotationMatrix(this.apply(mv.mat[0]), this.apply(mv.mat[1]), this.apply(mv.mat[2]));
+ }
+ public static RotationMatrix rotx(double theta) {
+ return new RotationMatrix(new Vector(1, 0, 0),
+ new Vector(0, Math.cos(theta), -Math.sin(theta)),
+ new Vector(0, Math.sin(theta), Math.cos(theta)));
+ }
+ public static RotationMatrix roty(double theta) {
+ return new RotationMatrix(new Vector(Math.cos(theta), 0, Math.sin(theta)),
+ new Vector(0, 1, 0),
+ new Vector(-Math.sin(theta), 0, Math.cos(theta)));
+ }
+ public static RotationMatrix rotz(double theta) {
+ return new RotationMatrix(new Vector(Math.cos(theta), -Math.sin(theta), 0),
+ new Vector(Math.sin(theta), Math.cos(theta), 0),
+ new Vector(0, 0, 1));
+ }
+ }
+
+}
diff --git a/org/madore/ephem/Precession.java b/org/madore/ephem/Precession.java
new file mode 100644
index 0000000..5ac3a03
--- /dev/null
+++ b/org/madore/ephem/Precession.java
@@ -0,0 +1,22 @@
+package org.madore.ephem;
+
+public final class Precession {
+
+ // The following angles are in arcseconds, argument is in Julian centuries since J2000.
+ public static final double epsilon = 84381.406;
+ public static Comput.Polynomial psi
+ = new Comput.Polynomial(0, 5038.481507, -1.0790069, -0.00114045, 0.000132851, -0.0000000951);
+ public static Comput.Polynomial omega
+ = new Comput.Polynomial(epsilon, -0.025754, 0.0512623, -0.00772503, -0.000000467, 0.0000003337);
+ public static Comput.Polynomial chi
+ = new Comput.Polynomial(0, 10.556403, -2.3814292, -0.00121197, 0.000170663, -0.0000000560);
+
+ public static Frames.RotationMatrix matrix(double t) {
+ Frames.RotationMatrix mat1 = Frames.RotationMatrix.rotx(epsilon*Comput.arcsecond);
+ Frames.RotationMatrix mat2 = Frames.RotationMatrix.rotz(-psi.v(t)*Comput.arcsecond).apply(mat1);
+ Frames.RotationMatrix mat3 = Frames.RotationMatrix.rotx(-omega.v(t)*Comput.arcsecond).apply(mat2);
+ Frames.RotationMatrix mat4 = Frames.RotationMatrix.rotz(chi.v(t)*Comput.arcsecond).apply(mat3);
+ return mat4;
+ }
+
+}
diff --git a/org/madore/ephem/Smart97.java b/org/madore/ephem/Smart97.java
deleted file mode 100644
index 3fa2b80..0000000
--- a/org/madore/ephem/Smart97.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.madore.ephem;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.BufferedReader;
-
-public final class Smart97 {
-
- public static enum Variable {
- CHI("chi"), P("p"), EPSILON("epsilon"),
- PHI("phi"), OMEGA("omega"), SIDTIME("sidtime");
- final String name;
- Variable(String name) { this.name = name; }
- }
-
- private static EnumMap<Variable, Comput.SumPoissonTerms> data = new EnumMap<Variable, Comput.SumPoissonTerms>(Variable.class);
-
- public static Comput.SumPoissonTerms getFunc(Variable v) {
- if ( ! data.containsKey(v) ) {
- List<Comput.PoissonTerm> series = new ArrayList<Comput.PoissonTerm>();
- try {
- InputStream str = Smart97.class.getResourceAsStream("smart97-simp.dat");
- BufferedReader in = new BufferedReader(new InputStreamReader(str, "utf-8"));
- String s;
- while ( ( s = in.readLine() ) != null ) {
- String[] fields = s.split("\t");
- if ( ! fields[0].equals("orient") || ! fields[1].equals(v.name) )
- continue;
- int deg = Integer.parseInt(fields[2]);
- double c = Double.parseDouble(fields[3]);
- double phi = Double.parseDouble(fields[4]);
- double om = Double.parseDouble(fields[5]);
- series.add(Comput.PoissonTerm.cphi(deg, c, phi, om));
- }
- } catch ( Exception e ) {
- throw new RuntimeException(e);
- }
- data.put(v, new Comput.SumPoissonTerms(series));
- }
- return data.get(v);
- }
-
-}
diff --git a/org/madore/ephem/smart97-simp.dat b/org/madore/ephem/smart97-simp.dat
deleted file mode 100644
index 1431272..0000000
--- a/org/madore/ephem/smart97-simp.dat
+++ /dev/null
@@ -1,392 +0,0 @@
-orient chi 1 105576857.99519999325 0.00000000000 0.00000000000
-orient chi 1 99190.44310000000 0.50156174030 -337.57047081000
-orient chi 1 7325.97150000000 1.84631616800 12566.63930559000
-orient chi 1 1268.67470000000 5.96146554720 167994.18220195000
-orient chi 1 1202.48390000000 5.84620520680 -675.14094162000
-orient chi 2 -238245949.46639999747 0.00000000000 0.00000000000
-orient chi 2 24670.38870000000 2.09788180320 -337.57047081000
-orient chi 3 -1214073.17859999998 0.00000000000 0.00000000000
-orient chi 4 1704654.16800000006 0.00000000000 0.00000000000
-orient p 0 17280776.38599999994 3.75320979740 -337.57047081000
-orient p 0 1278912.06300000008 5.07720039400 12566.63930559000
-orient p 0 221506.92410000000 2.90831422500 167994.18220195000
-orient p 0 209035.06390000001 2.79409290210 -675.14094162000
-orient p 0 106734.73890000000 4.58200520460 6283.31965280000
-orient p 0 67768.13550000000 0.78476596240 83286.91424771000
-orient p 0 49960.82990000000 5.03438172580 18849.95895839000
-orient p 0 37854.06170000000 0.72584406630 168331.75267275999
-orient p 0 29581.03730000000 5.26386898410 251281.09644967000
-orient p 0 14958.08080000000 0.18740069320 72140.62864865000
-orient p 0 12504.60540000000 6.03706095620 12904.20977640000
-orient p 0 11925.69320000000 3.69407469280 84707.26795424000
-orient p 0 6109.40480000000 2.96715973950 82949.34377691000
-orient p 0 6051.00140000000 2.54358638440 155427.54289636001
-orient p 0 5845.58840000000 4.66651072760 240134.81085060001
-orient p 0 5432.57610000000 1.39768334310 -83624.48471852001
-orient p 0 5094.34690000000 3.08138459550 251618.66692046999
-orient p 0 4510.37440000000 5.43934771210 1757.92417733000
-orient p 0 4484.91920000000 0.97343137130 -11146.28559907000
-orient p 0 3811.93660000000 0.73887625020 323421.72509830998
-orient p 0 3071.73070000000 1.33623855990 334568.01069738000
-orient p 0 2788.42160000000 3.14037502650 166573.82849543000
-orient p 0 2765.67690000000 4.29119037780 95853.55355329999
-orient p 0 2469.03320000000 1.68504055130 168669.32314357001
-orient p 0 2056.90180000000 5.57025854000 -13241.78024721000
-orient p 0 1980.06710000000 1.51174230870 85044.83842504000
-orient p 0 1527.86160000000 4.99262841880 25133.27861118000
-orient p 0 1483.45740000000 3.70953104500 5945.74918199000
-orient p 0 1467.00130000000 2.36982941440 71803.05817783999
-orient p 0 1427.53410000000 3.64815057260 -6620.89012360000
-orient p 0 1207.19300000000 1.99497980330 -72478.19911945000
-orient p 0 1111.91860000000 0.11548655770 2095.49464814000
-orient p 0 1005.72800000000 2.48404815340 240472.38132141001
-orient p 0 842.04200000000 5.59856892830 -7.84495195000
-orient p 0 766.30740000000 3.09443076280 406708.63934603002
-orient p 0 736.56880000000 6.00679363830 174277.50185475001
-orient p 0 700.15720000000 6.05258998080 -65857.30899585001
-orient p 0 660.64550000000 4.83958631960 323759.29556911997
-orient p 0 637.19420000000 2.99537674760 161710.86254916000
-orient p 0 632.02190000000 4.90196450170 238714.45714407999
-orient p 0 627.80930000000 0.36392533770 179140.46780101999
-orient p 0 614.45800000000 1.58379563520 155089.97242554999
-orient p 0 562.47070000000 2.10906067610 96191.12402411000
-orient p 0 532.83290000000 5.43692547570 334905.58116818999
-orient p 0 523.00570000000 3.15587139240 -11483.85606988000
-orient p 0 458.77810000000 5.92210348110 -155765.11336717001
-orient p 0 449.78910000000 5.45481956240 -77003.59459492000
-orient p 0 414.52360000000 3.69690940370 -149144.22324357001
-orient p 0 402.87760000000 0.48609998210 77713.77144818001
-orient p 0 398.39310000000 1.20887926740 10808.71512826000
-orient p 0 386.58290000000 2.47103739930 85382.40889585001
-orient p 0 347.05880000000 5.99379835980 19187.52942919000
-orient p 0 319.16350000000 4.04065949090 251956.23739128001
-orient p 0 316.57010000000 3.87336395710 89570.23390050999
-orient p 0 289.57980000000 3.69179448000 417854.92494509002
-orient p 0 283.31470000000 4.51324995520 1420.35370652000
-orient p 0 274.17680000000 4.71307683910 233851.49119780000
-orient p 0 273.40410000000 5.32263686090 244997.77679686999
-orient p 0 260.47770000000 0.78370966930 317138.40544552001
-orient p 0 255.98080000000 1.27205989590 -5573.14279953000
-orient p 0 243.58530000000 2.07915365330 257564.41610246000
-orient p 0 234.54850000000 1.13225271640 710.17685326000
-orient p 0 212.99830000000 5.32267627410 166236.25802462001
-orient p 0 212.38380000000 5.32524118010 -166911.39896624000
-orient p 1 50306898827.43599700928 0.00000000000 0.00000000000
-orient p 1 174568.49830000001 3.76205616090 -337.57047081000
-orient p 1 43199.35620000000 3.10358022600 6283.31965280000
-orient p 1 15046.59260000000 3.38277711640 18849.95895839000
-orient p 2 111293456.43260000646 0.00000000000 0.00000000000
-orient p 2 62639.37290000000 5.31160575050 -337.57047081000
-orient p 3 77665.76700000001 0.00000000000 0.00000000000
-orient p 4 -235686.42559999999 0.00000000000 0.00000000000
-orient epsilon 0 84381409000.00000000000 0.00000000000 0.00000000000
-orient epsilon 0 9227886.93139999919 2.18244238680 -337.57047081000
-orient epsilon 0 553345.22290000005 3.50693920000 12566.63930559000
-orient epsilon 0 94918.48860000000 1.33751928830 167994.18220195000
-orient epsilon 0 90339.74230000000 1.22332373290 -675.14094162000
-orient epsilon 0 21620.35430000000 3.46381106990 18849.95895839000
-orient epsilon 0 19412.99430000000 5.43824278270 168331.75267275999
-orient epsilon 0 12609.76530000000 3.69307429040 251281.09644967000
-orient epsilon 0 9114.58470000000 0.41502644410 6283.31965280000
-orient epsilon 0 6634.66450000000 4.46590291020 12904.20977640000
-orient epsilon 0 5136.13240000000 2.12354696720 84707.26795424000
-orient epsilon 0 3194.45680000000 1.39640779680 82949.34377691000
-orient epsilon 0 2967.10060000000 6.11009115720 -83624.48471852001
-orient epsilon 0 2566.06700000000 1.51059992300 251618.66692046999
-orient epsilon 0 2493.56490000000 3.09571196410 240134.81085060001
-orient epsilon 0 2404.90260000000 3.86886644700 1757.92417733000
-orient epsilon 0 1618.04280000000 5.45126660760 323421.72509830998
-orient epsilon 0 1303.01790000000 6.04862928640 334568.01069738000
-orient epsilon 0 1189.62710000000 2.72090202130 95853.55355329999
-orient epsilon 0 1034.48780000000 6.22443030720 85044.83842504000
-orient epsilon 0 972.74300000000 5.49686803840 83286.91424771000
-orient epsilon 0 790.78810000000 2.13916245590 5945.74918199000
-orient epsilon 0 769.17620000000 0.79904961800 71803.05817783999
-orient epsilon 0 660.08070000000 3.42129818670 25133.27861118000
-orient epsilon 0 657.15570000000 0.42428312500 -72478.19911945000
-orient epsilon 0 507.77900000000 0.91325542640 240472.38132141001
-orient epsilon 0 497.79640000000 1.04294904930 -7.84495195000
-orient epsilon 0 327.94350000000 3.26879936630 323759.29556911997
-orient epsilon 0 323.76810000000 1.52363622210 406708.63934603002
-orient epsilon 0 316.05030000000 0.01299138640 155089.97242554999
-orient epsilon 0 315.49690000000 4.43599205700 174277.50185475001
-orient epsilon 0 312.80360000000 2.59239314220 -6620.89012360000
-orient epsilon 0 296.04220000000 1.38324581150 161710.86254916000
-orient epsilon 0 293.04410000000 0.53863682940 96191.12402411000
-orient epsilon 0 280.06830000000 1.58509921470 -11483.85606988000
-orient epsilon 0 268.74990000000 5.07646207800 179140.46780101999
-orient epsilon 0 263.92190000000 3.86614219990 334905.58116818999
-orient epsilon 0 255.34220000000 4.35243168530 -155765.11336717001
-orient epsilon 0 212.03650000000 5.92146364290 10808.71512826000
-orient epsilon 1 -468360500.64600002766 0.00000000000 0.00000000000
-orient epsilon 1 9316.15190000000 2.27862197390 -337.57047081000
-orient epsilon 1 6517.42420000000 1.79214083150 18849.95895839000
-orient epsilon 1 2878.63980000000 0.33015300600 12566.63930559000
-orient epsilon 1 2820.52690000000 2.07132188900 6283.31965280000
-orient epsilon 2 33422.37490000000 3.75353070530 -337.57047081000
-orient epsilon 2 -18678.63290000000 0.00000000000 0.00000000000
-orient epsilon 3 2003221.05249999999 0.00000000000 0.00000000000
-orient phi 0 1009658226149.36914062500 0.00000000000 0.00000000000
-orient phi 0 15852155.04250000045 3.75320978930 -337.57047081000
-orient phi 0 1173383.37370000011 5.07720039550 12566.63930559000
-orient phi 0 203228.36730000001 2.90831422500 167994.18220195000
-orient phi 0 191849.88690000001 2.79409288760 -675.14094162000
-orient phi 0 97927.25060000000 4.58200487770 6283.31965280000
-orient phi 0 62175.96130000000 0.78476596230 83286.91424771000
-orient phi 0 45838.29610000000 5.03438161810 18849.95895839000
-orient phi 0 34728.49520000000 0.72584406690 168331.75267275999
-orient phi 0 27140.03560000000 5.26386898490 251281.09644967000
-orient phi 0 13723.74240000000 0.18740069710 72140.62864865000
-orient phi 0 11483.66190000000 6.03706028040 12904.20977640000
-orient phi 0 10941.58540000000 3.69407469400 84707.26795424000
-orient phi 0 5604.67230000000 2.96715973790 82949.34377691000
-orient phi 0 5551.82510000000 2.54358636180 155427.54289636001
-orient phi 0 5363.21550000000 4.66651073640 240134.81085060001
-orient phi 0 4983.69080000000 1.39768334340 -83624.48471852001
-orient phi 0 4673.71380000000 3.08138459510 251618.66692046999
-orient phi 0 4138.32840000000 5.43934774160 1757.92417733000
-orient phi 0 4114.82700000000 0.97343136360 -11146.28559907000
-orient phi 0 3497.37870000000 0.73887625570 323421.72509830998
-orient phi 0 2818.25410000000 1.33623857100 334568.01069738000
-orient phi 0 2558.32340000000 3.14037501070 166573.82849543000
-orient phi 0 2537.42260000000 4.29119037880 95853.55355329999
-orient phi 0 2265.60960000000 1.68504052840 168669.32314357001
-orient phi 0 1887.37520000000 5.57025857470 -13241.78024721000
-orient phi 0 1816.57210000000 1.51174230290 85044.83842504000
-orient phi 0 1402.09590000000 4.99273410410 25133.27861118000
-orient phi 0 1362.06830000000 3.70947033670 5945.74918199000
-orient phi 0 1345.81570000000 2.36982947630 71803.05817783999
-orient phi 0 1308.84680000000 3.64799056260 -6620.89012360000
-orient phi 0 1107.44410000000 1.99497976870 -72478.19911945000
-orient phi 0 1020.19200000000 0.11548656780 2095.49464814000
-orient phi 0 922.68640000000 2.48404819000 240472.38132141001
-orient phi 0 779.04970000000 5.59991530910 -7.84495195000
-orient phi 0 703.07230000000 3.09443075980 406708.63934603002
-orient phi 0 675.78910000000 6.00679470100 174277.50185475001
-orient phi 0 642.38020000000 6.05259017320 -65857.30899585001
-orient phi 0 606.09710000000 4.83958627950 323759.29556911997
-orient phi 0 584.61220000000 2.99537894890 161710.86254916000
-orient phi 0 579.88670000000 4.90196440410 238714.45714407999
-orient phi 0 576.00160000000 0.36392524640 179140.46780101999
-orient phi 0 563.80930000000 1.58379568140 155089.97242554999
-orient phi 0 516.03110000000 2.10906072550 96191.12402411000
-orient phi 0 488.83780000000 5.43692539050 334905.58116818999
-orient phi 0 479.80780000000 3.15587172480 -11483.85606988000
-orient phi 0 420.89080000000 5.92210365350 -155765.11336717001
-orient phi 0 412.67190000000 5.45481896740 -77003.59459492000
-orient phi 0 380.32400000000 3.69690927330 -149144.22324357001
-orient phi 0 369.63250000000 0.48609985310 77713.77144818001
-orient phi 0 365.47590000000 1.20887930670 10808.71512826000
-orient phi 0 354.69950000000 2.47103741190 85382.40889585001
-orient phi 0 318.85230000000 5.99379743800 19187.52942919000
-orient phi 0 292.86940000000 4.04065959360 251956.23739128001
-orient phi 0 290.44730000000 3.87336449470 89570.23390050999
-orient phi 0 265.68390000000 3.69179340690 417854.92494509002
-orient phi 0 260.01650000000 4.51323974000 1420.35370652000
-orient phi 0 251.55180000000 4.71307668770 233851.49119780000
-orient phi 0 250.84270000000 5.32263761850 244997.77679686999
-orient phi 0 238.98320000000 0.78370859050 317138.40544552001
-orient phi 0 234.85740000000 1.27205990230 -5573.14279953000
-orient phi 0 223.48490000000 2.07915316860 257564.41610246000
-orient phi 0 215.18220000000 1.13223468610 710.17685326000
-orient phi 1 474660027824506304.00000000000 0.00000000000 0.00000000000
-orient phi 1 78159.47740000000 3.91137988910 -337.57047081000
-orient phi 1 39600.31500000000 3.09081155350 6283.31965280000
-orient phi 1 13801.05610000000 3.36529971930 18849.95895839000
-orient phi 1 5397.29530000000 1.91297962050 12566.63930559000
-orient phi 2 -98382922.28079999983 0.00000000000 0.00000000000
-orient phi 2 32899.45580000000 5.36209651180 -337.57047081000
-orient phi 3 -1216206.28879999998 0.00000000000 0.00000000000
-orient phi 4 1408224.68969999999 0.00000000000 0.00000000000
-orient omega 0 84381409000.00000000000 0.00000000000 0.00000000000
-orient omega 0 9227886.93160000071 2.18244238680 -337.57047081000
-orient omega 0 553345.22259999998 3.50693920000 12566.63930559000
-orient omega 0 94918.48870000000 1.33751928820 167994.18220195000
-orient omega 0 90339.74219999999 1.22332373280 -675.14094162000
-orient omega 0 21620.35420000000 3.46381107040 18849.95895839000
-orient omega 0 19412.99400000000 5.43824278270 168331.75267275999
-orient omega 0 12609.76520000000 3.69307429020 251281.09644967000
-orient omega 0 9114.58470000000 0.41502644070 6283.31965280000
-orient omega 0 6634.66410000000 4.46590291080 12904.20977640000
-orient omega 0 5136.13230000000 2.12354696720 84707.26795424000
-orient omega 0 3194.45670000000 1.39640779680 82949.34377691000
-orient omega 0 2967.10060000000 6.11009115720 -83624.48471852001
-orient omega 0 2566.06690000000 1.51059992280 251618.66692046999
-orient omega 0 2493.56470000000 3.09571196180 240134.81085060001
-orient omega 0 2404.90260000000 3.86886644700 1757.92417733000
-orient omega 0 1618.04270000000 5.45126660260 323421.72509830998
-orient omega 0 1303.01770000000 6.04862928640 334568.01069738000
-orient omega 0 1189.62700000000 2.72090202140 95853.55355329999
-orient omega 0 1034.48790000000 6.22443030720 85044.83842504000
-orient omega 0 972.74310000000 5.49686803830 83286.91424771000
-orient omega 0 790.78790000000 2.13916252750 5945.74918199000
-orient omega 0 769.17580000000 0.79904961540 71803.05817783999
-orient omega 0 660.08070000000 3.42129818670 25133.27861118000
-orient omega 0 657.15580000000 0.42428312500 -72478.19911945000
-orient omega 0 507.77880000000 0.91325542650 240472.38132141001
-orient omega 0 497.79640000000 1.04294904930 -7.84495195000
-orient omega 0 327.94360000000 3.26879936590 323759.29556911997
-orient omega 0 323.76810000000 1.52363622210 406708.63934603002
-orient omega 0 316.05030000000 0.01299138670 155089.97242554999
-orient omega 0 315.49680000000 4.43599205710 174277.50185475001
-orient omega 0 312.80370000000 2.59239310560 -6620.89012360000
-orient omega 0 296.04220000000 1.38324585250 161710.86254916000
-orient omega 0 293.04400000000 0.53863682930 96191.12402411000
-orient omega 0 280.06770000000 1.58509920750 -11483.85606988000
-orient omega 0 268.75020000000 5.07646207860 179140.46780101999
-orient omega 0 263.92210000000 3.86614219950 334905.58116818999
-orient omega 0 255.34190000000 4.35243168580 -155765.11336717001
-orient omega 0 212.03640000000 5.92146364260 10808.71512826000
-orient omega 1 -265001.70850000001 0.00000000000 0.00000000000
-orient omega 1 10269.74170000000 2.62661855990 -337.57047081000
-orient omega 1 6507.30360000000 1.79198364400 18849.95895839000
-orient omega 1 2899.36610000000 0.24027679520 12566.63930559000
-orient omega 1 2803.00860000000 2.07589567810 6283.31965280000
-orient omega 2 5129588.35670000035 0.00000000000 0.00000000000
-orient omega 2 25499.80480000000 3.75369012680 -337.57047081000
-orient omega 3 -7731881.22209999990 0.00000000000 0.00000000000
-orient psi 0 17280776.38599999994 3.75320979740 -337.57047081000
-orient psi 0 1278912.06300000008 5.07720039400 12566.63930559000
-orient psi 0 221506.92410000000 2.90831422500 167994.18220195000
-orient psi 0 209035.06390000001 2.79409290230 -675.14094162000
-orient psi 0 106734.73880000001 4.58200520470 6283.31965280000
-orient psi 0 67768.13550000000 0.78476596220 83286.91424771000
-orient psi 0 49960.82990000000 5.03438172610 18849.95895839000
-orient psi 0 37854.06170000000 0.72584406850 168331.75267275999
-orient psi 0 29581.03740000000 5.26386898480 251281.09644967000
-orient psi 0 14958.08080000000 0.18740069680 72140.62864865000
-orient psi 0 12504.60540000000 6.03706096520 12904.20977640000
-orient psi 0 11925.69320000000 3.69407469410 84707.26795424000
-orient psi 0 6109.40480000000 2.96715974310 82949.34377691000
-orient psi 0 6051.00140000000 2.54358637610 155427.54289636001
-orient psi 0 5845.58840000000 4.66651073600 240134.81085060001
-orient psi 0 5432.57610000000 1.39768334260 -83624.48471852001
-orient psi 0 5094.34690000000 3.08138459740 251618.66692046999
-orient psi 0 4510.37440000000 5.43934771410 1757.92417733000
-orient psi 0 4484.91920000000 0.97343136340 -11146.28559907000
-orient psi 0 3811.93660000000 0.73887625500 323421.72509830998
-orient psi 0 3071.73070000000 1.33623857080 334568.01069738000
-orient psi 0 2788.42160000000 3.14037501060 166573.82849543000
-orient psi 0 2765.67690000000 4.29119038570 95853.55355329999
-orient psi 0 2469.03320000000 1.68504053480 168669.32314357001
-orient psi 0 2056.90180000000 5.57025854440 -13241.78024721000
-orient psi 0 1980.06710000000 1.51174229630 85044.83842504000
-orient psi 0 1527.86160000000 4.99262841820 25133.27861118000
-orient psi 0 1483.45740000000 3.70953107520 5945.74918199000
-orient psi 0 1467.00130000000 2.36982947740 71803.05817783999
-orient psi 0 1427.53410000000 3.64815056670 -6620.89012360000
-orient psi 0 1207.19300000000 1.99497977650 -72478.19911945000
-orient psi 0 1111.91860000000 0.11548657370 2095.49464814000
-orient psi 0 1005.72800000000 2.48404819080 240472.38132141001
-orient psi 0 842.04200000000 5.59856892780 -7.84495195000
-orient psi 0 766.30740000000 3.09443075880 406708.63934603002
-orient psi 0 736.56880000000 6.00679366660 174277.50185475001
-orient psi 0 700.15720000000 6.05259031850 -65857.30899585001
-orient psi 0 660.64550000000 4.83958628070 323759.29556911997
-orient psi 0 637.19420000000 2.99537675750 161710.86254916000
-orient psi 0 632.02180000000 4.90196451300 238714.45714407999
-orient psi 0 627.80930000000 0.36392524700 179140.46780101999
-orient psi 0 614.45790000000 1.58379561910 155089.97242554999
-orient psi 0 562.47070000000 2.10906071180 96191.12402411000
-orient psi 0 532.83290000000 5.43692539350 334905.58116818999
-orient psi 0 523.00570000000 3.15587172260 -11483.85606988000
-orient psi 0 458.77810000000 5.92210361430 -155765.11336717001
-orient psi 0 449.78910000000 5.45481991410 -77003.59459492000
-orient psi 0 414.52360000000 3.69690938280 -149144.22324357001
-orient psi 0 402.87760000000 0.48609985370 77713.77144818001
-orient psi 0 398.39310000000 1.20887931570 10808.71512826000
-orient psi 0 386.58290000000 2.47103741830 85382.40889585001
-orient psi 0 347.05880000000 5.99379836890 19187.52942919000
-orient psi 0 319.16350000000 4.04065961180 251956.23739128001
-orient psi 0 316.57010000000 3.87336389330 89570.23390050999
-orient psi 0 289.57970000000 3.69179340670 417854.92494509002
-orient psi 0 283.31470000000 4.51325007280 1420.35370652000
-orient psi 0 274.17670000000 4.71307652090 233851.49119780000
-orient psi 0 273.40410000000 5.32263680600 244997.77679686999
-orient psi 0 260.47760000000 0.78370845900 317138.40544552001
-orient psi 0 255.98080000000 1.27205988970 -5573.14279953000
-orient psi 0 243.58530000000 2.07915294800 257564.41610246000
-orient psi 0 234.54850000000 1.13225290980 710.17685326000
-orient psi 0 212.99830000000 5.32267653290 166236.25802462001
-orient psi 0 212.38380000000 5.32524135340 -166911.39896624000
-orient psi 1 50403763708.80519866943 0.00000000000 0.00000000000
-orient psi 1 85170.41540000000 3.91141821140 -337.57047081000
-orient psi 1 43161.88590000000 3.09080993380 6283.31965280000
-orient psi 1 15042.27050000000 3.36529777090 18849.95895839000
-orient psi 1 5883.39330000000 1.91298221670 12566.63930559000
-orient psi 2 -107245239.91429999471 0.00000000000 0.00000000000
-orient psi 2 35862.24810000000 5.35689626350 -337.57047081000
-orient psi 2 5216.60830000000 1.20174992780 6283.31965280000
-orient psi 3 -1144400.22820000001 0.00000000000 0.00000000000
-orient psi 4 1329512.82609999995 0.00000000000 0.00000000000
-orient sidtime 0 1009658226149.36914062500 0.00000000000 0.00000000000
-orient sidtime 0 15852155.04250000045 3.75320978930 -337.57047081000
-orient sidtime 0 1173383.37370000011 5.07720039550 12566.63930559000
-orient sidtime 0 203228.36730000001 2.90831422500 167994.18220195000
-orient sidtime 0 191849.88690000001 2.79409288760 -675.14094162000
-orient sidtime 0 97927.25060000000 4.58200487770 6283.31965280000
-orient sidtime 0 62175.96130000000 0.78476596230 83286.91424771000
-orient sidtime 0 45838.29610000000 5.03438161810 18849.95895839000
-orient sidtime 0 34728.49520000000 0.72584406690 168331.75267275999
-orient sidtime 0 27140.03560000000 5.26386898490 251281.09644967000
-orient sidtime 0 13723.74240000000 0.18740069710 72140.62864865000
-orient sidtime 0 11483.66190000000 6.03706028040 12904.20977640000
-orient sidtime 0 10941.58540000000 3.69407469400 84707.26795424000
-orient sidtime 0 5604.67230000000 2.96715973790 82949.34377691000
-orient sidtime 0 5551.82510000000 2.54358636180 155427.54289636001
-orient sidtime 0 5363.21550000000 4.66651073640 240134.81085060001
-orient sidtime 0 4983.69080000000 1.39768334340 -83624.48471852001
-orient sidtime 0 4673.71380000000 3.08138459510 251618.66692046999
-orient sidtime 0 4138.32840000000 5.43934774160 1757.92417733000
-orient sidtime 0 4114.82700000000 0.97343136360 -11146.28559907000
-orient sidtime 0 3497.37870000000 0.73887625570 323421.72509830998
-orient sidtime 0 2818.25410000000 1.33623857100 334568.01069738000
-orient sidtime 0 2558.32340000000 3.14037501070 166573.82849543000
-orient sidtime 0 2537.42260000000 4.29119037880 95853.55355329999
-orient sidtime 0 2265.60960000000 1.68504052840 168669.32314357001
-orient sidtime 0 1887.37520000000 5.57025857470 -13241.78024721000
-orient sidtime 0 1816.57210000000 1.51174230290 85044.83842504000
-orient sidtime 0 1402.09590000000 4.99273410410 25133.27861118000
-orient sidtime 0 1362.06830000000 3.70947033670 5945.74918199000
-orient sidtime 0 1345.81570000000 2.36982947630 71803.05817783999
-orient sidtime 0 1308.84680000000 3.64799056260 -6620.89012360000
-orient sidtime 0 1107.44410000000 1.99497976870 -72478.19911945000
-orient sidtime 0 1020.19200000000 0.11548656780 2095.49464814000
-orient sidtime 0 922.68640000000 2.48404819000 240472.38132141001
-orient sidtime 0 779.04970000000 5.59991530910 -7.84495195000
-orient sidtime 0 703.07230000000 3.09443075980 406708.63934603002
-orient sidtime 0 675.78910000000 6.00679470100 174277.50185475001
-orient sidtime 0 642.38020000000 6.05259017320 -65857.30899585001
-orient sidtime 0 606.09710000000 4.83958627950 323759.29556911997
-orient sidtime 0 584.61220000000 2.99537894890 161710.86254916000
-orient sidtime 0 579.88670000000 4.90196440410 238714.45714407999
-orient sidtime 0 576.00160000000 0.36392524640 179140.46780101999
-orient sidtime 0 563.80930000000 1.58379568140 155089.97242554999
-orient sidtime 0 516.03110000000 2.10906072550 96191.12402411000
-orient sidtime 0 488.83780000000 5.43692539050 334905.58116818999
-orient sidtime 0 479.80780000000 3.15587172480 -11483.85606988000
-orient sidtime 0 420.89080000000 5.92210365350 -155765.11336717001
-orient sidtime 0 412.67190000000 5.45481896740 -77003.59459492000
-orient sidtime 0 380.32400000000 3.69690927330 -149144.22324357001
-orient sidtime 0 369.63250000000 0.48609985310 77713.77144818001
-orient sidtime 0 365.47590000000 1.20887930670 10808.71512826000
-orient sidtime 0 354.69950000000 2.47103741190 85382.40889585001
-orient sidtime 0 318.85230000000 5.99379743800 19187.52942919000
-orient sidtime 0 292.86940000000 4.04065959360 251956.23739128001
-orient sidtime 0 290.44730000000 3.87336449470 89570.23390050999
-orient sidtime 0 265.68390000000 3.69179340690 417854.92494509002
-orient sidtime 0 260.01650000000 4.51323974000 1420.35370652000
-orient sidtime 0 251.55180000000 4.71307668770 233851.49119780000
-orient sidtime 0 250.84270000000 5.32263761850 244997.77679686999
-orient sidtime 0 238.98320000000 0.78370859050 317138.40544552001
-orient sidtime 0 234.85740000000 1.27205990230 -5573.14279953000
-orient sidtime 0 223.48490000000 2.07915316860 257564.41610246000
-orient sidtime 0 215.18220000000 1.13223468610 710.17685326000
-orient sidtime 1 474660027718929408.00000000000 0.00000000000 0.00000000000
-orient sidtime 1 175779.87630000000 3.76126876250 -337.57047081000
-orient sidtime 1 39643.69780000000 3.10600188250 6283.31965280000
-orient sidtime 1 13801.45490000000 3.38603614140 18849.95895839000
-orient sidtime 1 1973.68820000000 4.80472149130 12566.63930559000
-orient sidtime 2 139863027.18560001254 0.00000000000 0.00000000000
-orient sidtime 2 57463.88680000000 5.30956009070 -337.57047081000
-orient sidtime 4 -296429.47830000002 0.00000000000 0.00000000000