예제 #1
0
        // MMercury.Radius(EPrecision)
        /// <summary>
        /// Liefert den heliozentrisch-ekliptikalen Radius zur aktuellen Systemzeit.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <returns>Heliozentrisch-ekliptikalen Radius zur aktuellen Systemzeit.</returns>
        public static double Radius(EPrecision value)
        {
            // Lokale Felder einrichten
            double jd = MCalendar.FromDateTime(DateTime.Now);

            return(MMercury.Radius(value, jd));
        }
예제 #2
0
        // MMercury.m_R3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_R3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000032676 * MMath.Cos(1.67971635359 + 26087.90314157420 * t);
            rtn += 0.00000024166 * MMath.Cos(4.63403168997 + 52175.80628314840 * t);
            rtn += 0.00000012133 * MMath.Cos(1.38983781545 + 78263.70942472259 * t);
            rtn += 0.00000005140 * MMath.Cos(4.43915386930 + 104351.61256629678 * t);
            rtn += 0.00000001981 * MMath.Cos(1.20733880274 + 130439.51570787099 * t);
            rtn += 0.00000001460 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000000719 * MMath.Cos(4.25913631362 + 156527.41884944518 * t);
            rtn += 0.00000000250 * MMath.Cos(1.02794425848 + 182615.32199101939 * t);
            rtn += 0.00000000084 * MMath.Cos(4.08008618813 + 208703.22513259358 * t);
            return(rtn);
        }
예제 #3
0
        // ------------------- //
        // Felder und Methoden //
        // ------------------- //
        // MJupiter.Latitude(EPrecision)
        /// <summary>
        /// Liefert die heliozentrisch-ekliptikale Breite zur aktuellen Systemzeit.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <returns>Heliozentrisch-ekliptikale Breite zur aktuellen Systemzeit.</returns>
        public static double Latitude(EPrecision value)
        {
            // Lokale Felder einrichten
            double jd = MCalendar.FromDateTime(DateTime.Now);

            return(MJupiter.Latitude(value, jd));
        }
예제 #4
0
        // MJupiter.m_B4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_B4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000015050 * MMath.Cos(4.52956999637 + 522.57741809380 * t);
            rtn += 0.00000005370 * MMath.Cos(4.47427159142 + 529.69096509460 * t);
            rtn += 0.00000004456 * MMath.Cos(5.43908581047 + 536.80451209540 * t);
            rtn += 0.00000003422 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000001833 * MMath.Cos(4.51807036227 + 515.46387109300 * t);
            rtn += 0.00000001322 * MMath.Cos(4.20117611581 + 1052.26838318840 * t);
            rtn += 0.00000000755 * MMath.Cos(5.59451554966 + 543.91805909620 * t);
            rtn += 0.00000000512 * MMath.Cos(0.05803177475 + 1066.49547719000 * t);
            rtn += 0.00000000282 * MMath.Cos(3.66807771223 + 1059.38193018920 * t);
            rtn += 0.00000000147 * MMath.Cos(3.56490986181 + 1045.15483618760 * t);
            rtn += 0.00000000142 * MMath.Cos(5.69936472988 + 7.11354700080 * t);
            rtn += 0.00000000112 * MMath.Cos(1.16718383135 + 14.22709400160 * t);
            return(rtn);
        }
예제 #5
0
        // MEarth.m_B2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_B2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000001662 * MMath.Cos(1.62703209173 + 84334.66158130829 * t);
            rtn += 0.00000000492 * MMath.Cos(2.41382223971 + 1047.74731175470 * t);
            rtn += 0.00000000344 * MMath.Cos(2.24353004539 + 5507.55323866740 * t);
            rtn += 0.00000000258 * MMath.Cos(6.00906896311 + 5223.69391980220 * t);
            rtn += 0.00000000131 * MMath.Cos(0.95447345240 + 6283.07584999140 * t);
            rtn += 0.00000000090 * MMath.Cos(0.97606804452 + 1577.34354244780 * t);
            rtn += 0.00000000090 * MMath.Cos(0.37899871725 + 2352.86615377180 * t);
            rtn += 0.00000000089 * MMath.Cos(6.25807507963 + 10213.28554621100 * t);
            rtn += 0.00000000086 * MMath.Cos(1.67530247303 + 7860.41939243920 * t);
            rtn += 0.00000000075 * MMath.Cos(0.84213523741 + 167621.57585086189 * t);
            rtn += 0.00000000057 * MMath.Cos(6.15295833679 + 12194.03291462090 * t);
            rtn += 0.00000000052 * MMath.Cos(1.70501566089 + 14143.49524243060 * t);
            rtn += 0.00000000051 * MMath.Cos(5.37229738682 + 6812.76681508600 * t);
            rtn += 0.00000000051 * MMath.Cos(1.27616016740 + 5753.38488489680 * t);
            return(rtn);
        }
예제 #6
0
        // MNeptune.PositionEcliptical(EPrecision)
        /// <summary>
        /// Liefert die heliozentrisch-ekliptikale Position zur aktuellen Systemzeit.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <returns>Heliozentrisch-ekliptikale Position zur aktuellen Systemzeit.</returns>
        public static CPolar PositionEcliptical(EPrecision value)
        {
            // Lokale Felder einrichten und Position berechnen
            double jd = MCalendar.FromDateTime(DateTime.Now);

            return(MNeptune.PositionEcliptical(value, jd));
        }
예제 #7
0
        // MNeptune.m_B3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_B3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000273423 * MMath.Cos(1.01688979072 + 38.13303563780 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000002393 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000002274 * MMath.Cos(2.36805657126 + 36.64856292950 * t);
            rtn += 0.00000002029 * MMath.Cos(5.33364321342 + 76.26607127560 * t);
            rtn += 0.00000000538 * MMath.Cos(3.21934211365 + 39.61750834610 * t);
            rtn += 0.00000000242 * MMath.Cos(4.52650721578 + 114.39910691340 * t);
            rtn += 0.00000000185 * MMath.Cos(1.04913770083 + 74.78159856730 * t);
            rtn += 0.00000000157 * MMath.Cos(3.94195369610 + 1.48447270830 * t);
            rtn += 0.00000000155 * MMath.Cos(3.62376309338 + 35.16409022120 * t);
            return(rtn);
        }
예제 #8
0
        // MUranus.m_B3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_B3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000267832 * MMath.Cos(1.25097888291 + 74.78159856730 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000011048 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000006154 * MMath.Cos(4.00663614486 + 149.56319713460 * t);
            rtn += 0.00000003361 * MMath.Cos(5.77804694935 + 73.29712585900 * t);
            rtn += 0.00000001602 * MMath.Cos(1.05657834344 + 63.73589830340 * t);
            rtn += 0.00000001265 * MMath.Cos(1.66795295537 + 78.71375183040 * t);
            rtn += 0.00000001183 * MMath.Cos(2.58856450374 + 138.51749687070 * t);
            rtn += 0.00000001087 * MMath.Cos(0.28687213135 + 76.26607127560 * t);
            rtn += 0.00000000640 * MMath.Cos(1.87238784591 + 71.60020482960 * t);
            rtn += 0.00000000590 * MMath.Cos(0.80206040001 + 1.48447270830 * t);
            rtn += 0.00000000467 * MMath.Cos(4.42872012006 + 148.07872442630 * t);
            rtn += 0.00000000272 * MMath.Cos(4.00684090176 + 85.82729883120 * t);
            rtn += 0.00000000203 * MMath.Cos(0.60406901282 + 71.81265315070 * t);
            rtn += 0.00000000180 * MMath.Cos(5.55657564049 + 3.93215326310 * t);
            rtn += 0.00000000170 * MMath.Cos(2.93672195979 + 11.04570026390 * t);
            rtn += 0.00000000168 * MMath.Cos(4.67745630044 + 70.84944530420 * t);
            return(rtn);
        }
예제 #9
0
        // MJupiter.m_B3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_B3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000251624 * MMath.Cos(3.38087923084 + 529.69096509460 * t);
            rtn += 0.00000121738 * MMath.Cos(2.73311837200 + 522.57741809380 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000048694 * MMath.Cos(1.03689996685 + 536.80451209540 * t);
            rtn += 0.00000010988 * MMath.Cos(2.31463561347 + 1052.26838318840 * t);
            rtn += 0.00000008067 * MMath.Cos(2.76729757621 + 515.46387109300 * t);
            rtn += 0.00000007287 * MMath.Cos(4.25268318975 + 1059.38193018920 * t);
            rtn += 0.00000006205 * MMath.Cos(1.78115827370 + 1066.49547719000 * t);
            rtn += 0.00000003627 * MMath.Cos(1.13028917221 + 543.91805909620 * t);
            rtn += 0.00000002798 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000001898 * MMath.Cos(2.28934054087 + 7.11354700080 * t);
            rtn += 0.00000001643 * MMath.Cos(1.77507208483 + 1045.15483618760 * t);
            rtn += 0.00000000945 * MMath.Cos(0.45261136388 + 632.78373931320 * t);
            rtn += 0.00000000876 * MMath.Cos(0.32927768725 + 1589.07289528380 * t);
            rtn += 0.00000000758 * MMath.Cos(0.30577920142 + 949.17560896980 * t);
            rtn += 0.00000000736 * MMath.Cos(1.52532370632 + 735.87651353180 * t);
            rtn += 0.00000000731 * MMath.Cos(2.63748223583 + 14.22709400160 * t);
            rtn += 0.00000000678 * MMath.Cos(2.36909615348 + 1581.95934828300 * t);
            rtn += 0.00000000623 * MMath.Cos(2.48056213600 + 1596.18644228460 * t);
            rtn += 0.00000000499 * MMath.Cos(3.67985494258 + 419.48464387520 * t);
            rtn += 0.00000000454 * MMath.Cos(0.26977404624 + 942.06206196900 * t);
            rtn += 0.00000000453 * MMath.Cos(3.18232334886 + 526.50957135690 * t);
            rtn += 0.00000000409 * MMath.Cos(2.88147337106 + 110.20632121940 * t);
            rtn += 0.00000000347 * MMath.Cos(5.76244285870 + 103.09277421860 * t);
            rtn += 0.00000000321 * MMath.Cos(4.40642025933 + 532.87235883230 * t);
            rtn += 0.00000000310 * MMath.Cos(2.98017326384 + 508.35032409220 * t);
            rtn += 0.00000000300 * MMath.Cos(1.66936571536 + 625.67019231240 * t);
            rtn += 0.00000000295 * MMath.Cos(1.75924202728 + 1073.60902419080 * t);
            rtn += 0.00000000282 * MMath.Cos(3.11087801399 + 533.62311835770 * t);
            rtn += 0.00000000263 * MMath.Cos(0.55255030187 + 426.59819087600 * t);
            rtn += 0.00000000208 * MMath.Cos(2.17540496886 + 1155.36115740700 * t);
            rtn += 0.00000000183 * MMath.Cos(4.34670868038 + 525.75881183150 * t);
            rtn += 0.00000000180 * MMath.Cos(6.07777744541 + 639.89728631400 * t);
            rtn += 0.00000000159 * MMath.Cos(2.60843864402 + 1162.47470440780 * t);
            rtn += 0.00000000130 * MMath.Cos(1.37897716939 + 323.50541665740 * t);
            rtn += 0.00000000117 * MMath.Cos(4.70141431381 + 95.97922721780 * t);
            rtn += 0.00000000114 * MMath.Cos(3.75170981478 + 117.31986822020 * t);
            rtn += 0.00000000107 * MMath.Cos(5.48942805114 + 433.71173787680 * t);
            rtn += 0.00000000105 * MMath.Cos(3.75192101775 + 316.39186965660 * t);
            rtn += 0.00000000098 * MMath.Cos(2.00704668688 + 1574.84580128220 * t);
            rtn += 0.00000000095 * MMath.Cos(0.54905691533 + 1169.58825140860 * t);
            rtn += 0.00000000094 * MMath.Cos(3.05797832024 + 1265.56747862640 * t);
            rtn += 0.00000000088 * MMath.Cos(3.26874502411 + 213.29909543800 * t);
            return(rtn);
        }
예제 #10
0
        /// <summary>Return the order books for the currency pairs in 'Market'</summary>
        public OrderBook GetOrderBook(CurrencyPair pair, int depth, EPrecision precision, CancellationToken?cancel = null)
        {
            // https://api.bitfinex.com/v2/book/Symbol/Precision
            var reply = GetData($"v2/book/{pair.Id}/{precision}", cancel, new KV("len", depth));

            Market.ParseUpdate(pair, JArray.Parse(reply));
            return(Market[pair]);
        }
예제 #11
0
 public SubscriptionOrderBook(CurrencyPair pair, int depth = 25, EFrequency freq = EFrequency.F0, EPrecision prec = EPrecision.P0)
     : base(API.ChannelName.Book)
 {
     Pair      = pair;
     Frequency = freq;
     Depth     = depth;
     Precision = prec;
 }
예제 #12
0
 private static long Run(string log, Action run, EPrecision precision)
 {
     Stopwatch sw = Stopwatch.StartNew();
     run();
     sw.Stop();
     var elapsed = precision == EPrecision.Ms ? sw.ElapsedMilliseconds : sw.ElapsedTicks;
     //Console.WriteLine("{0}: {1}", log, elapsed);
     return elapsed;
 }
예제 #13
0
        // MNeptune.PositionEcliptical(EPrecision, double)
        /// <summary>
        /// Liefert die heliozentrisch-ekliptikale Position zur julianischen Tageszahl.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="jd">Julianische Tageszahl.</param>
        /// <returns>Heliozentrisch-ekliptikale Position zur julianischen Tageszahl.</returns>
        public static CPolar PositionEcliptical(EPrecision value, double jd)
        {
            // Lokale Felder einrichten
            CPolar rtn = new CPolar();

            rtn.Latitude  = MNeptune.Latitude(value, jd);
            rtn.Longitude = MNeptune.Longitude(value, jd);
            rtn.Radius    = MNeptune.Radius(value, jd);
            return(rtn);
        }
예제 #14
0
        // MEarth.PositionEcliptical(EPrecision)
        /// <summary>
        /// Liefert die heliozentrisch-ekliptikale Position zur aktuellen Systemzeit.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <returns>Heliozentrisch-ekliptikale Position zur aktuellen Systemzeit.</returns>
        public static CPolar PositionEcliptical(EPrecision value)
        {
            // Lokale Felder einrichten
            CPolar rtn = new CPolar();

            rtn.Latitude  = MEarth.Latitude(value);
            rtn.Longitude = MEarth.Longitude(value);
            rtn.Radius    = MEarth.Radius(value);
            return(rtn);
        }
예제 #15
0
        // MEarth.Latitude(EPrecision, double)
        /// <summary>
        /// Liefert die heliozentrisch-ekliptikale Breite zur julianischen Tageszahl.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="jd">Julianische Tageszahl.</param>
        /// <returns>Heliozentrisch-ekliptikale Breite zur julianischen Tageszahl.</returns>
        public static double Latitude(EPrecision value, double jd)
        {
            // Lokale Felder einrichten
            double t  = (jd - 2451545.0) / 365250.0;             // Jahrhundertbruchteil
            double b0 = MEarth.m_B0(value, t);
            double b1 = MEarth.m_B1(value, t);
            double b2 = MEarth.m_B2(value, t);

            // Breite berechnen
            return(MMath.Polynome(t, b0, b1, b2));
        }
예제 #16
0
        // MMercury.Radius(EPrecision, double)
        /// <summary>
        /// Liefert den heliozentrisch-ekliptikalen Radius zur julianischen Tageszahl.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="jd">Julianische Tageszahl.</param>
        /// <returns>Heliozentrisch-ekliptikalen Radius zur julianischen Tageszahl.</returns>
        public static double Radius(EPrecision value, double jd)
        {
            // Lokale Felder einrichten
            double t  = (jd - 2451545.0) / 365250.0;             // Jahrhundertbruchteil
            double r0 = MMercury.m_R0(value, t);
            double r1 = MMercury.m_R1(value, t);
            double r2 = MMercury.m_R2(value, t);
            double r3 = MMercury.m_R3(value, t);
            double r4 = MMercury.m_R4(value, t);

            // Radius berechnen
            return(MMath.Polynome(t, r0, r1, r2, r3, r4));
        }
예제 #17
0
        // MVenus.m_B2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_B2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00022377665 * MMath.Cos(3.38509143877 + 10213.28554621100 * t);
            rtn += 0.00000281739 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000173164 * MMath.Cos(5.25563766915 + 20426.57109242200 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000026945 * MMath.Cos(3.87040891568 + 30639.85663863300 * t);
            rtn += 0.00000001174 * MMath.Cos(0.09768632072 + 10186.98722641120 * t);
            rtn += 0.00000000788 * MMath.Cos(4.36515965295 + 10239.58386601080 * t);
            rtn += 0.00000000685 * MMath.Cos(3.19139067811 + 11790.62908865880 * t);
            rtn += 0.00000000592 * MMath.Cos(5.22270440328 + 40853.14218484400 * t);
            rtn += 0.00000000540 * MMath.Cos(3.11657836329 + 18073.70493865020 * t);
            rtn += 0.00000000538 * MMath.Cos(0.57550272342 + 2352.86615377180 * t);
            rtn += 0.00000000515 * MMath.Cos(6.12821215207 + 10988.80815753500 * t);
            rtn += 0.00000000454 * MMath.Cos(2.79306867629 + 10404.73381232260 * t);
            rtn += 0.00000000431 * MMath.Cos(4.00778431184 + 1577.34354244780 * t);
            rtn += 0.00000000375 * MMath.Cos(1.31319959789 + 22003.91463486980 * t);
            rtn += 0.00000000374 * MMath.Cos(6.10468482446 + 9437.76293488700 * t);
            rtn += 0.00000000360 * MMath.Cos(6.01747842320 + 19651.04848109800 * t);
            rtn += 0.00000000354 * MMath.Cos(5.12509281266 + 9153.90361602180 * t);
            rtn += 0.00000000164 * MMath.Cos(5.41790158607 + 5507.55323866740 * t);
            rtn += 0.00000000159 * MMath.Cos(2.78191550878 + 19896.88012732740 * t);
            rtn += 0.00000000157 * MMath.Cos(0.65774905071 + 529.69096509460 * t);
            rtn += 0.00000000155 * MMath.Cos(2.54824315372 + 9683.59458111640 * t);
            rtn += 0.00000000150 * MMath.Cos(4.58623687118 + 15720.83878487840 * t);
            rtn += 0.00000000128 * MMath.Cos(5.32400510939 + 13367.97263110660 * t);
            rtn += 0.00000000115 * MMath.Cos(3.23636374193 + 20618.01935853360 * t);
            rtn += 0.00000000109 * MMath.Cos(2.01866665583 + 14143.49524243060 * t);
            rtn += 0.00000000106 * MMath.Cos(2.28289033017 + 6283.07584999140 * t);
            rtn += 0.00000000090 * MMath.Cos(5.23585072275 + 10596.18207843420 * t);
            rtn += 0.00000000087 * MMath.Cos(3.28265082435 + 11322.66409830440 * t);
            rtn += 0.00000000055 * MMath.Cos(4.82369879741 + 7058.59846131540 * t);
            return(rtn);
        }
예제 #18
0
        // MNeptune.m_B5(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 5. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 5. Ordnung.</returns>
        private static double m_B5(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000000113 * MMath.Cos(4.70646877989 + 38.13303563780 * t);
            return(rtn);
        }
예제 #19
0
        // MVenus.m_B5(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 5. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 5. Ordnung.</returns>
        private static double m_B5(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000000239 * MMath.Cos(2.05201727566 + 10213.28554621100 * t);
            return(rtn);
        }
예제 #20
0
        // MNeptune.m_B4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_B4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000005728 * MMath.Cos(2.66872693322 + 38.13303563780 * t);
            return(rtn);
        }
예제 #21
0
        // MVenus.m_R4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_R4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000000573 * MMath.Cos(0.92229697820 + 10213.28554621100 * t);
            return(rtn);
        }
예제 #22
0
        // MUranus.m_B4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_B4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000005719 * MMath.Cos(2.85499529315 + 74.78159856730 * t);
            rtn += 0.00000000300 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            return(rtn);
        }
예제 #23
0
        // MNeptune.m_B2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_B2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00009690766 * MMath.Cos(5.57123750291 + 38.13303563780 * t);
            rtn += 0.00000078815 * MMath.Cos(3.62705474219 + 76.26607127560 * t);
            rtn += 0.00000071523 * MMath.Cos(0.45476688580 + 36.64856292950 * t);
            rtn += 0.00000058646 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000029915 * MMath.Cos(1.60671721861 + 39.61750834610 * t);
            rtn += 0.00000006472 * MMath.Cos(5.60736756575 + 74.78159856730 * t);
            rtn += 0.00000005800 * MMath.Cos(2.25341847151 + 1.48447270830 * t);
            rtn += 0.00000004309 * MMath.Cos(1.68126737666 + 35.16409022120 * t);
            rtn += 0.00000003502 * MMath.Cos(2.39142672984 + 114.39910691340 * t);
            rtn += 0.00000002649 * MMath.Cos(0.65061457644 + 73.29712585900 * t);
            rtn += 0.00000001518 * MMath.Cos(0.37600329684 + 213.29909543800 * t);
            rtn += 0.00000001223 * MMath.Cos(1.23116043030 + 2.96894541660 * t);
            rtn += 0.00000000779 * MMath.Cos(2.07081431472 + 529.69096509460 * t);
            rtn += 0.00000000766 * MMath.Cos(5.45279753249 + 453.42489381900 * t);
            rtn += 0.00000000496 * MMath.Cos(0.26552533921 + 41.10198105440 * t);
            rtn += 0.00000000482 * MMath.Cos(5.63056237954 + 137.03302416240 * t);
            rtn += 0.00000000469 * MMath.Cos(5.87866293959 + 77.75054398390 * t);
            rtn += 0.00000000345 * MMath.Cos(1.80085651594 + 71.81265315070 * t);
            rtn += 0.00000000274 * MMath.Cos(2.86650141006 + 33.67961751290 * t);
            rtn += 0.00000000166 * MMath.Cos(1.24877330835 + 220.41264243880 * t);
            rtn += 0.00000000158 * MMath.Cos(4.63868656467 + 206.18554843720 * t);
            rtn += 0.00000000153 * MMath.Cos(2.87376446497 + 111.43016149680 * t);
            rtn += 0.00000000116 * MMath.Cos(3.63838544843 + 112.91463420510 * t);
            rtn += 0.00000000104 * MMath.Cos(6.12597614674 + 144.14657116320 * t);
            rtn += 0.00000000085 * MMath.Cos(0.43712705655 + 4.45341812490 * t);
            return(rtn);
        }
예제 #24
0
        // MMercury.m_R2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_R2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00003117867 * MMath.Cos(3.08231840296 + 26087.90314157420 * t);
            rtn += 0.00001245396 * MMath.Cos(6.15183317423 + 52175.80628314840 * t);
            rtn += 0.00000424822 * MMath.Cos(2.92583352960 + 78263.70942472259 * t);
            rtn += 0.00000136130 * MMath.Cos(5.97983925842 + 104351.61256629678 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000042175 * MMath.Cos(2.74936980629 + 130439.51570787099 * t);
            rtn += 0.00000021759 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000012793 * MMath.Cos(5.80143162209 + 156527.41884944518 * t);
            rtn += 0.00000003825 * MMath.Cos(2.56993599584 + 182615.32199101939 * t);
            rtn += 0.00000001131 * MMath.Cos(5.62142196970 + 208703.22513259358 * t);
            rtn += 0.00000001042 * MMath.Cos(3.14648120079 + 24978.52458948080 * t);
            rtn += 0.00000000483 * MMath.Cos(6.14307654520 + 27197.28169366760 * t);
            rtn += 0.00000000332 * MMath.Cos(2.38992575670 + 234791.12827416777 * t);
            rtn += 0.00000000320 * MMath.Cos(6.20674766565 + 51066.42773105500 * t);
            rtn += 0.00000000120 * MMath.Cos(0.56745598887 + 20426.57109242200 * t);
            rtn += 0.00000000113 * MMath.Cos(3.28048907943 + 24498.83024629040 * t);
            rtn += 0.00000000105 * MMath.Cos(4.36663468239 + 25028.52121138500 * t);
            rtn += 0.00000000103 * MMath.Cos(2.98038190305 + 77154.33087262919 * t);
            rtn += 0.00000000097 * MMath.Cos(5.44128884026 + 260879.03141574195 * t);
            rtn += 0.00000000095 * MMath.Cos(1.70276410782 + 1059.38193018920 * t);
            rtn += 0.00000000074 * MMath.Cos(1.28630381800 + 26617.59410666880 * t);
            rtn += 0.00000000066 * MMath.Cos(5.68201233964 + 25132.30339996560 * t);
            rtn += 0.00000000059 * MMath.Cos(3.10922979724 + 27043.50288318280 * t);
            rtn += 0.00000000057 * MMath.Cos(2.96753362980 + 1109.37855209340 * t);
            rtn += 0.00000000053 * MMath.Cos(3.63699398162 + 46514.47423399620 * t);
            rtn += 0.00000000053 * MMath.Cos(0.66673109494 + 21535.94964451540 * t);
            return(rtn);
        }
예제 #25
0
        // MVenus.m_R3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_R3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000049582 * MMath.Cos(3.22263554520 + 10213.28554621100 * t);
            rtn += 0.00000000831 * MMath.Cos(3.21219077104 + 20426.57109242200 * t);
            rtn += 0.00000000112 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            return(rtn);
        }
예제 #26
0
        // MMercury.m_R4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_R4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000000394 * MMath.Cos(0.36735403840 + 26087.90314157420 * t);
            rtn += 0.00000000387 * MMath.Cos(3.18568771507 + 52175.80628314840 * t);
            rtn += 0.00000000270 * MMath.Cos(6.16983616444 + 78263.70942472259 * t);
            rtn += 0.00000000149 * MMath.Cos(2.91591904641 + 104351.61256629678 * t);
            return(rtn);
        }
예제 #27
0
        // MVenus.m_B4(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 4. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 4. Ordnung.</returns>
        private static double m_B4(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000014102 * MMath.Cos(0.31537190181 + 10213.28554621100 * t);
            rtn += 0.00000000214 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000000190 * MMath.Cos(2.35466404492 + 20426.57109242200 * t);
            rtn += 0.00000000164 * MMath.Cos(0.74476215141 + 30639.85663863300 * t);
            return(rtn);
        }
예제 #28
0
        // MJupiter.m_B5(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 5. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 5. Ordnung.</returns>
        private static double m_B5(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000001445 * MMath.Cos(0.09198554072 + 522.57741809380 * t);
            rtn += 0.00000000368 * MMath.Cos(0.00874408003 + 515.46387109300 * t);
            rtn += 0.00000000304 * MMath.Cos(3.27902945138 + 536.80451209540 * t);
            rtn += 0.00000000129 * MMath.Cos(0.33959775247 + 529.69096509460 * t);
            rtn += 0.00000000095 * MMath.Cos(1.29305954542 + 543.91805909620 * t);
            return(rtn);
        }
예제 #29
0
        // MVenus.m_R2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_R2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00001406587 * MMath.Cos(5.06366395190 + 10213.28554621100 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000015529 * MMath.Cos(5.47321687981 + 20426.57109242200 * t);
            rtn += 0.00000013059 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000001099 * MMath.Cos(2.78883988292 + 9437.76293488700 * t);
            rtn += 0.00000000488 * MMath.Cos(6.27806914496 + 1577.34354244780 * t);
            rtn += 0.00000000389 * MMath.Cos(1.95017779915 + 11015.10647733480 * t);
            rtn += 0.00000000372 * MMath.Cos(2.33222828423 + 775.52261132400 * t);
            rtn += 0.00000000361 * MMath.Cos(6.11914188253 + 10404.73381232260 * t);
            rtn += 0.00000000310 * MMath.Cos(1.38984998403 + 5507.55323866740 * t);
            rtn += 0.00000000207 * MMath.Cos(5.63406721595 + 10239.58386601080 * t);
            rtn += 0.00000000175 * MMath.Cos(6.16674652950 + 30639.85663863300 * t);
            rtn += 0.00000000168 * MMath.Cos(3.64495311632 + 7084.89678111520 * t);
            rtn += 0.00000000168 * MMath.Cos(1.10765197296 + 13367.97263110660 * t);
            rtn += 0.00000000160 * MMath.Cos(2.21564938463 + 3154.68708489560 * t);
            rtn += 0.00000000120 * MMath.Cos(5.85815843789 + 9153.90361602180 * t);
            rtn += 0.00000000118 * MMath.Cos(2.62358866565 + 8635.94200376320 * t);
            rtn += 0.00000000112 * MMath.Cos(2.36235956804 + 10596.18207843420 * t);
            rtn += 0.00000000092 * MMath.Cos(0.72664449269 + 12566.15169998280 * t);
            rtn += 0.00000000067 * MMath.Cos(3.76089669118 + 18837.49819713819 * t);
            rtn += 0.00000000065 * MMath.Cos(2.47983709990 + 11790.62908865880 * t);
            return(rtn);
        }
예제 #30
0
        // MVenus.m_B3(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 3. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 3. Ordnung.</returns>
        private static double m_B3(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000646671 * MMath.Cos(4.99166565277 + 10213.28554621100 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000019952 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000005540 * MMath.Cos(0.77376923951 + 20426.57109242200 * t);
            rtn += 0.00000002526 * MMath.Cos(5.44493763020 + 30639.85663863300 * t);
            rtn += 0.00000000079 * MMath.Cos(1.51447613604 + 10186.98722641120 * t);
            rtn += 0.00000000058 * MMath.Cos(5.70731176550 + 10239.58386601080 * t);
            rtn += 0.00000000056 * MMath.Cos(0.63647808442 + 40853.14218484400 * t);
            return(rtn);
        }
예제 #31
0
        // MJupiter.m_B0(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 0. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 0. Ordnung.</returns>
        private static double m_B0(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            // Terme aufsummieren
            rtn += 0.02268615703 * MMath.Cos(3.55852606718 + 529.69096509460 * t);
            rtn += 0.00110090358 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00109971634 * MMath.Cos(3.90809347389 + 1059.38193018920 * t);
            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            rtn += 0.00008101427 * MMath.Cos(3.60509573368 + 522.57741809380 * t);
            rtn += 0.00006437782 * MMath.Cos(0.30627121409 + 536.80451209540 * t);
            rtn += 0.00006043996 * MMath.Cos(4.25883108794 + 1589.07289528380 * t);
            rtn += 0.00001106880 * MMath.Cos(2.98534421928 + 1162.47470440780 * t);
            rtn += 0.00000944328 * MMath.Cos(1.67522288396 + 426.59819087600 * t);
            rtn += 0.00000941651 * MMath.Cos(2.93619072405 + 1052.26838318840 * t);
            rtn += 0.00000894088 * MMath.Cos(1.75447429921 + 7.11354700080 * t);
            rtn += 0.00000835861 * MMath.Cos(5.17881973234 + 103.09277421860 * t);
            rtn += 0.00000767280 * MMath.Cos(2.15473594060 + 632.78373931320 * t);
            rtn += 0.00000684220 * MMath.Cos(3.67808770098 + 213.29909543800 * t);
            rtn += 0.00000629223 * MMath.Cos(0.64343282328 + 1066.49547719000 * t);
            rtn += 0.00000558524 * MMath.Cos(0.01354830508 + 846.08283475120 * t);
            rtn += 0.00000531670 * MMath.Cos(2.70305954352 + 110.20632121940 * t);
            rtn += 0.00000464449 * MMath.Cos(1.17337249185 + 949.17560896980 * t);
            rtn += 0.00000431072 * MMath.Cos(2.60825000494 + 419.48464387520 * t);
            rtn += 0.00000351433 * MMath.Cos(4.61062990714 + 2118.76386037840 * t);
            rtn += 0.00000132160 * MMath.Cos(4.77816990670 + 742.99006053260 * t);
            rtn += 0.00000123148 * MMath.Cos(3.34968181384 + 1692.16566950240 * t);
            rtn += 0.00000116379 * MMath.Cos(1.38688232033 + 323.50541665740 * t);
            rtn += 0.00000115038 * MMath.Cos(5.04892295442 + 316.39186965660 * t);
            rtn += 0.00000103762 * MMath.Cos(3.70103838110 + 515.46387109300 * t);
            rtn += 0.00000103402 * MMath.Cos(2.31878999565 + 1478.86657406440 * t);
            rtn += 0.00000102420 * MMath.Cos(3.15293785436 + 1581.95934828300 * t);
            rtn += 0.00000078650 * MMath.Cos(3.98318653238 + 1265.56747862640 * t);
            rtn += 0.00000069935 * MMath.Cos(2.56006216424 + 956.28915597060 * t);
            rtn += 0.00000063456 * MMath.Cos(4.50073574333 + 735.87651353180 * t);
            rtn += 0.00000055597 * MMath.Cos(0.37500753017 + 1375.77379984580 * t);
            rtn += 0.00000055194 * MMath.Cos(0.40176412035 + 525.75881183150 * t);
            rtn += 0.00000051986 * MMath.Cos(0.99007119033 + 1596.18644228460 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000049691 * MMath.Cos(0.18649893085 + 543.91805909620 * t);
            rtn += 0.00000048831 * MMath.Cos(3.57260550671 + 533.62311835770 * t);
            rtn += 0.00000029209 * MMath.Cos(5.43145863011 + 206.18554843720 * t);
            rtn += 0.00000028353 * MMath.Cos(1.53532744749 + 625.67019231240 * t);
            rtn += 0.00000024436 * MMath.Cos(6.10947656959 + 1169.58825140860 * t);
            rtn += 0.00000023255 * MMath.Cos(5.95197992848 + 838.96928775040 * t);
            rtn += 0.00000023202 * MMath.Cos(4.06473368575 + 526.50957135690 * t);
            rtn += 0.00000022841 * MMath.Cos(6.19262787685 + 532.87235883230 * t);
            rtn += 0.00000021314 * MMath.Cos(2.69476951059 + 1045.15483618760 * t);
            rtn += 0.00000021116 * MMath.Cos(4.96322972735 + 2648.45482547300 * t);
            rtn += 0.00000017879 * MMath.Cos(3.08704395969 + 1795.25844372100 * t);
            rtn += 0.00000017325 * MMath.Cos(1.61550009206 + 14.22709400160 * t);
            rtn += 0.00000016234 * MMath.Cos(4.83515727869 + 1368.66025284500 * t);
            rtn += 0.00000015740 * MMath.Cos(1.15130330106 + 942.06206196900 * t);
            rtn += 0.00000013505 * MMath.Cos(3.28126975760 + 1155.36115740700 * t);
            rtn += 0.00000013396 * MMath.Cos(2.30539585502 + 853.19638175200 * t);
            rtn += 0.00000011904 * MMath.Cos(3.09811974536 + 2111.65031337760 * t);
            rtn += 0.00000011830 * MMath.Cos(4.76527836803 + 309.27832265580 * t);
            rtn += 0.00000011734 * MMath.Cos(2.83006431723 + 2008.55753915900 * t);
            rtn += 0.00000011291 * MMath.Cos(0.98957560201 + 433.71173787680 * t);
            rtn += 0.00000010815 * MMath.Cos(5.81958878617 + 1272.68102562720 * t);
            rtn += 0.00000010702 * MMath.Cos(3.70181397065 + 2221.85663459700 * t);
            rtn += 0.00000010632 * MMath.Cos(5.23487936086 + 95.97922721780 * t);
            rtn += 0.00000010179 * MMath.Cos(2.58691128827 + 117.31986822020 * t);
            rtn += 0.00000008771 * MMath.Cos(0.40456546655 + 220.41264243880 * t);
            rtn += 0.00000007439 * MMath.Cos(2.94638292086 + 412.37109687440 * t);
            rtn += 0.00000006151 * MMath.Cos(2.69100382247 + 380.12776796000 * t);
            rtn += 0.00000005936 * MMath.Cos(4.32059910537 + 1063.31408345230 * t);
            rtn += 0.00000005421 * MMath.Cos(4.08612438558 + 1685.05212250160 * t);
            rtn += 0.00000005028 * MMath.Cos(0.72750312028 + 1055.44977692610 * t);
            rtn += 0.00000004939 * MMath.Cos(0.73756716762 + 1905.46476494040 * t);
            rtn += 0.00000004737 * MMath.Cos(4.09303016850 + 527.24328453980 * t);
            rtn += 0.00000004731 * MMath.Cos(6.16377350841 + 532.13864564940 * t);
            rtn += 0.00000004709 * MMath.Cos(1.84067645204 + 984.60033162190 * t);
            rtn += 0.00000004666 * MMath.Cos(5.88762905802 + 639.89728631400 * t);
            rtn += 0.00000004229 * MMath.Cos(2.23767157901 + 74.78159856730 * t);
            rtn += 0.00000004010 * MMath.Cos(0.51530008355 + 1073.60902419080 * t);
            rtn += 0.00000003974 * MMath.Cos(1.33608029246 + 2125.87740737920 * t);
            rtn += 0.00000003763 * MMath.Cos(0.38865925413 + 529.64278098480 * t);
            rtn += 0.00000003762 * MMath.Cos(3.58647039394 + 529.73914920440 * t);
            rtn += 0.00000003457 * MMath.Cos(3.43865563497 + 1485.98012106520 * t);
            rtn += 0.00000003409 * MMath.Cos(4.05398247269 + 1898.35121793960 * t);
            rtn += 0.00000003162 * MMath.Cos(1.25048416420 + 330.61896365820 * t);
            rtn += 0.00000003091 * MMath.Cos(0.16470256025 + 1699.27921650320 * t);
            rtn += 0.00000002983 * MMath.Cos(3.25251207220 + 528.72775724810 * t);
            rtn += 0.00000002975 * MMath.Cos(0.72268908074 + 530.65417294110 * t);
            rtn += 0.00000002837 * MMath.Cos(0.05987107395 + 1439.50969814920 * t);
            rtn += 0.00000002727 * MMath.Cos(4.37679213321 + 149.56319713460 * t);
            rtn += 0.00000002596 * MMath.Cos(3.30510149086 + 2324.94940881560 * t);
            rtn += 0.00000002527 * MMath.Cos(5.94458202950 + 909.81873305460 * t);
            rtn += 0.00000002464 * MMath.Cos(1.16913304420 + 453.42489381900 * t);
            rtn += 0.00000002269 * MMath.Cos(1.30379329597 + 3.93215326310 * t);
            rtn += 0.00000002232 * MMath.Cos(0.26149880534 + 1062.56332392690 * t);
            rtn += 0.00000002029 * MMath.Cos(3.97938086639 + 1056.20053645150 * t);
            rtn += 0.00000001988 * MMath.Cos(2.85269577619 + 1574.84580128220 * t);
            rtn += 0.00000001742 * MMath.Cos(4.49909767044 + 1258.45393162560 * t);
            rtn += 0.00000001714 * MMath.Cos(4.12945878208 + 2001.44399215820 * t);
            rtn += 0.00000001667 * MMath.Cos(0.36037092553 + 10213.28554621100 * t);
            rtn += 0.00000001604 * MMath.Cos(1.98841031703 + 38.13303563780 * t);
            rtn += 0.00000001594 * MMath.Cos(2.07556780757 + 1021.24889455140 * t);
            rtn += 0.00000001579 * MMath.Cos(6.11640144795 + 1802.37199072180 * t);
            rtn += 0.00000001451 * MMath.Cos(2.39804501178 + 2428.04218303420 * t);
            rtn += 0.00000001393 * MMath.Cos(3.69324470827 + 2214.74308759620 * t);
            rtn += 0.00000001346 * MMath.Cos(3.27591492540 + 2641.34127847220 * t);
            rtn += 0.00000001325 * MMath.Cos(1.74025919863 + 529.16970023280 * t);
            rtn += 0.00000001324 * MMath.Cos(2.23549334986 + 530.21222995640 * t);
            rtn += 0.00000001320 * MMath.Cos(1.33770977126 + 618.55664531160 * t);
            rtn += 0.00000001266 * MMath.Cos(3.04704446731 + 604.47256366190 * t);
            rtn += 0.00000001230 * MMath.Cos(0.19552728220 + 305.34616939270 * t);
            rtn += 0.00000001226 * MMath.Cos(5.34003255221 + 3178.14579056760 * t);
            rtn += 0.00000001223 * MMath.Cos(2.86681556337 + 1382.88734684660 * t);
            rtn += 0.00000001124 * MMath.Cos(1.59560367480 + 3.18139373770 * t);
            rtn += 0.00000001056 * MMath.Cos(3.80579750957 + 76.26607127560 * t);
            rtn += 0.00000001050 * MMath.Cos(4.68011652614 + 1788.14489672020 * t);
            rtn += 0.00000001017 * MMath.Cos(5.55711112145 + 199.07200143640 * t);
            rtn += 0.00000001009 * MMath.Cos(3.19608028376 + 2538.24850425360 * t);
            rtn += 0.00000000978 * MMath.Cos(0.25223689838 + 983.11585891360 * t);
            rtn += 0.00000000954 * MMath.Cos(3.86932544808 + 728.76296653100 * t);
            rtn += 0.00000000948 * MMath.Cos(0.21552742733 + 750.10360753340 * t);
            rtn += 0.00000000946 * MMath.Cos(3.93927748120 + 508.35032409220 * t);
            rtn += 0.00000000920 * MMath.Cos(1.14672086939 + 963.40270297140 * t);
            rtn += 0.00000000868 * MMath.Cos(3.44331872364 + 569.04784100980 * t);
            rtn += 0.00000000862 * MMath.Cos(0.87975657414 + 490.33408917940 * t);
            rtn += 0.00000000817 * MMath.Cos(5.93809619876 + 831.85574074960 * t);
            rtn += 0.00000000801 * MMath.Cos(4.03984430862 + 1364.72809958190 * t);
            rtn += 0.00000000770 * MMath.Cos(2.96062737592 + 526.77020378780 * t);
            rtn += 0.00000000761 * MMath.Cos(1.38163787157 + 532.61172640140 * t);
            rtn += 0.00000000726 * MMath.Cos(3.98337964395 + 2317.83586181480 * t);
            rtn += 0.00000000711 * MMath.Cos(4.11107052823 + 2751.54759969160 * t);
            rtn += 0.00000000708 * MMath.Cos(4.00539820601 + 530.44172462000 * t);
            rtn += 0.00000000708 * MMath.Cos(0.33555577415 + 528.94020556920 * t);
            rtn += 0.00000000679 * MMath.Cos(1.18645749024 + 525.49817940060 * t);
            rtn += 0.00000000668 * MMath.Cos(3.15607509055 + 533.88375078860 * t);
            rtn += 0.00000000663 * MMath.Cos(1.57092786811 + 6283.07584999140 * t);
            rtn += 0.00000000663 * MMath.Cos(0.73722024843 + 5223.69391980220 * t);
            rtn += 0.00000000659 * MMath.Cos(0.62560671589 + 1512.80682400820 * t);
            rtn += 0.00000000656 * MMath.Cos(4.39568451439 + 519.39602435610 * t);
            rtn += 0.00000000645 * MMath.Cos(5.10510349996 + 1361.54670584420 * t);
            rtn += 0.00000000602 * MMath.Cos(1.56074089013 + 454.90936652730 * t);
            rtn += 0.00000000570 * MMath.Cos(0.61976758791 + 540.73666535850 * t);
            rtn += 0.00000000544 * MMath.Cos(2.22227019273 + 2744.43405269080 * t);
            rtn += 0.00000000543 * MMath.Cos(0.26376529935 + 227.52618943960 * t);
            rtn += 0.00000000535 * MMath.Cos(4.80455380313 + 1593.00504854690 * t);
            rtn += 0.00000000532 * MMath.Cos(2.62425372687 + 99.16062095550 * t);
            rtn += 0.00000000532 * MMath.Cos(0.20040217534 + 525.02509864860 * t);
            rtn += 0.00000000528 * MMath.Cos(1.76471074936 + 524.27433912320 * t);
            rtn += 0.00000000525 * MMath.Cos(6.22318693939 + 539.98590583310 * t);
            rtn += 0.00000000524 * MMath.Cos(0.64710955846 + 524.06189080210 * t);
            rtn += 0.00000000520 * MMath.Cos(2.57406093768 + 535.10759106600 * t);
            rtn += 0.00000000519 * MMath.Cos(0.54543519483 + 1061.82961074400 * t);
            rtn += 0.00000000518 * MMath.Cos(0.26343805959 + 551.03160609700 * t);
            rtn += 0.00000000516 * MMath.Cos(3.69478866795 + 535.32003938710 * t);
            rtn += 0.00000000516 * MMath.Cos(1.09376390349 + 934.94851496820 * t);
            rtn += 0.00000000513 * MMath.Cos(4.98337900151 + 302.16477565500 * t);
            rtn += 0.00000000505 * MMath.Cos(5.36536256321 + 1057.89745748090 * t);
            rtn += 0.00000000499 * MMath.Cos(4.13924061941 + 534.35683154060 * t);
            rtn += 0.00000000496 * MMath.Cos(2.19398015038 + 1514.29129671650 * t);
            rtn += 0.00000000493 * MMath.Cos(0.39160693598 + 224.34479570190 * t);
            rtn += 0.00000000491 * MMath.Cos(3.63039940597 + 2531.13495725280 * t);
            rtn += 0.00000000471 * MMath.Cos(6.05791940453 + 1471.75302706360 * t);
            rtn += 0.00000000457 * MMath.Cos(4.17708652827 + 2104.53676637680 * t);
            rtn += 0.00000000454 * MMath.Cos(4.53321742354 + 1056.93424963440 * t);
            rtn += 0.00000000450 * MMath.Cos(5.02467015031 + 1048.33622992530 * t);
            rtn += 0.00000000449 * MMath.Cos(3.71676131146 + 529.85102378900 * t);
            rtn += 0.00000000449 * MMath.Cos(0.62392433691 + 529.53090640020 * t);
            rtn += 0.00000000443 * MMath.Cos(5.27513700376 + 1.48447270830 * t);
            rtn += 0.00000000428 * MMath.Cos(5.44804660290 + 11.04570026390 * t);
            rtn += 0.00000000424 * MMath.Cos(2.70929670030 + 1038.04128918680 * t);
            rtn += 0.00000000415 * MMath.Cos(0.96548127237 + 2435.15573003500 * t);
            rtn += 0.00000000398 * MMath.Cos(1.40345870113 + 960.22130923370 * t);
            rtn += 0.00000000386 * MMath.Cos(2.15984900214 + 9153.90361602180 * t);
            rtn += 0.00000000370 * MMath.Cos(5.71572992274 + 531.17543780290 * t);
            rtn += 0.00000000359 * MMath.Cos(4.02704454075 + 1059.43011429900 * t);
            rtn += 0.00000000359 * MMath.Cos(0.82922836987 + 1059.33374607940 * t);
            rtn += 0.00000000358 * MMath.Cos(5.94423960514 + 440.82528487760 * t);
            rtn += 0.00000000356 * MMath.Cos(2.66818105522 + 835.03713448730 * t);
            rtn += 0.00000000313 * MMath.Cos(4.88085697819 + 528.20649238630 * t);
            rtn += 0.00000000310 * MMath.Cos(3.45966511571 + 529.47851677350 * t);
            rtn += 0.00000000310 * MMath.Cos(0.88102053266 + 529.90341341570 * t);
            rtn += 0.00000000308 * MMath.Cos(2.67237933272 + 2957.73314812880 * t);
            rtn += 0.00000000306 * MMath.Cos(2.50289017370 + 511.53171782990 * t);
            rtn += 0.00000000300 * MMath.Cos(3.70331799503 + 2634.22773147140 * t);
            rtn += 0.00000000295 * MMath.Cos(1.84394223501 + 547.85021235930 * t);
            rtn += 0.00000000292 * MMath.Cos(2.63594456361 + 415.55249061210 * t);
            rtn += 0.00000000291 * MMath.Cos(5.83134071820 + 1148.24761040620 * t);
            rtn += 0.00000000289 * MMath.Cos(1.86070918711 + 21.34064100240 * t);
            rtn += 0.00000000283 * MMath.Cos(2.88709716090 + 35.42472265210 * t);
            rtn += 0.00000000279 * MMath.Cos(1.60669121578 + 643.82943957710 * t);
            rtn += 0.00000000275 * MMath.Cos(3.34108666036 + 518.64526483070 * t);
            rtn += 0.00000000272 * MMath.Cos(1.65708415457 + 3060.82592234740 * t);
            rtn += 0.00000000269 * MMath.Cos(1.06051406954 + 1585.14074202070 * t);
            rtn += 0.00000000268 * MMath.Cos(5.39275891813 + 1891.23767093880 * t);
            rtn += 0.00000000265 * MMath.Cos(4.93075479744 + 679.25416222920 * t);
            rtn += 0.00000000264 * MMath.Cos(3.62722625694 + 2420.92863603340 * t);
            rtn += 0.00000000254 * MMath.Cos(2.98312992496 + 1134.16352875650 * t);
            rtn += 0.00000000250 * MMath.Cos(0.42860925124 + 1969.20066324380 * t);
            rtn += 0.00000000241 * MMath.Cos(4.03927631611 + 494.26624244250 * t);
            rtn += 0.00000000234 * MMath.Cos(1.68821537711 + 2655.56837247380 * t);
            rtn += 0.00000000234 * MMath.Cos(1.34474827450 + 173.94221952280 * t);
            rtn += 0.00000000224 * MMath.Cos(0.33130232434 + 565.11568774670 * t);
            rtn += 0.00000000222 * MMath.Cos(4.78828764413 + 514.71311156760 * t);
            rtn += 0.00000000221 * MMath.Cos(4.32763468981 + 1677.93857550080 * t);
            rtn += 0.00000000217 * MMath.Cos(3.46278526461 + 2950.61960112800 * t);
            rtn += 0.00000000216 * MMath.Cos(0.52207667980 + 2228.97018159780 * t);
            rtn += 0.00000000214 * MMath.Cos(5.83569926578 + 544.66881862160 * t);
            rtn += 0.00000000211 * MMath.Cos(1.00937080256 + 523.54062594030 * t);
            rtn += 0.00000000210 * MMath.Cos(3.75793720248 + 2854.64037391020 * t);
            rtn += 0.00000000205 * MMath.Cos(3.36186888290 + 2847.52682690940 * t);
            rtn += 0.00000000200 * MMath.Cos(1.27632489123 + 39.35687591520 * t);
            rtn += 0.00000000191 * MMath.Cos(4.26821147044 + 430.53034413910 * t);
            rtn += 0.00000000191 * MMath.Cos(3.33159283750 + 535.84130424890 * t);
            rtn += 0.00000000187 * MMath.Cos(2.72587420586 + 299.12639426920 * t);
            rtn += 0.00000000180 * MMath.Cos(0.04531671003 + 387.24131496080 * t);
            rtn += 0.00000000179 * MMath.Cos(3.91470663005 + 3340.61242669980 * t);
            rtn += 0.00000000178 * MMath.Cos(0.27566275049 + 3906.90875709860 * t);
            rtn += 0.00000000176 * MMath.Cos(4.26298906325 + 672.14061522840 * t);
            rtn += 0.00000000173 * MMath.Cos(3.62399350412 + 230.56457082540 * t);
            rtn += 0.00000000171 * MMath.Cos(0.85473611718 + 1603.29998928540 * t);
            rtn += 0.00000000170 * MMath.Cos(4.96479470273 + 1464.63948006280 * t);
            rtn += 0.00000000163 * MMath.Cos(4.62850343495 + 2015.67108615980 * t);
            rtn += 0.00000000162 * MMath.Cos(5.87784787295 + 3480.31056622260 * t);
            rtn += 0.00000000160 * MMath.Cos(1.81852636004 + 312.45971639350 * t);
            rtn += 0.00000000158 * MMath.Cos(3.76231915252 + 92.04707395470 * t);
            rtn += 0.00000000158 * MMath.Cos(2.59595816107 + 529.43033266370 * t);
            rtn += 0.00000000158 * MMath.Cos(1.74472748730 + 529.95159752550 * t);
            rtn += 0.00000000151 * MMath.Cos(1.17096741034 + 1060.34513803570 * t);
            rtn += 0.00000000144 * MMath.Cos(6.13954848857 + 1158.54255114470 * t);
            rtn += 0.00000000144 * MMath.Cos(5.35763122430 + 107.02492748170 * t);
            rtn += 0.00000000144 * MMath.Cos(3.60261852727 + 1058.41872234270 * t);
            rtn += 0.00000000142 * MMath.Cos(0.70435921398 + 522.52923398400 * t);
            rtn += 0.00000000137 * MMath.Cos(2.41724947062 + 3274.12501778540 * t);
            rtn += 0.00000000135 * MMath.Cos(3.60177675518 + 124.43341522100 * t);
            rtn += 0.00000000131 * MMath.Cos(1.67926417552 + 1289.94650101460 * t);
            rtn += 0.00000000131 * MMath.Cos(1.37610474529 + 1023.95720753710 * t);
            rtn += 0.00000000129 * MMath.Cos(0.09702914345 + 2332.06295581640 * t);
            rtn += 0.00000000127 * MMath.Cos(0.39825164051 + 70.84944530420 * t);
            rtn += 0.00000000126 * MMath.Cos(5.14832919826 + 2207.62954059540 * t);
            rtn += 0.00000000126 * MMath.Cos(3.41994798109 + 2.44768055480 * t);
            rtn += 0.00000000126 * MMath.Cos(2.40833814513 + 106.27416795630 * t);
            rtn += 0.00000000125 * MMath.Cos(2.35496721797 + 3163.91869656600 * t);
            rtn += 0.00000000123 * MMath.Cos(4.77865550523 + 2524.02141025200 * t);
            rtn += 0.00000000123 * MMath.Cos(0.46184813516 + 647.01083331480 * t);
            rtn += 0.00000000122 * MMath.Cos(3.21027426317 + 3377.21779200400 * t);
            rtn += 0.00000000121 * MMath.Cos(3.39770381916 + 18.15924726470 * t);
            rtn += 0.00000000121 * MMath.Cos(1.60252617273 + 10.29494073850 * t);
            rtn += 0.00000000121 * MMath.Cos(0.61420823557 + 1592.25428902150 * t);
            rtn += 0.00000000119 * MMath.Cos(4.08266911415 + 1585.89150154610 * t);
            rtn += 0.00000000115 * MMath.Cos(2.35735471566 + 1550.93985964600 * t);
            rtn += 0.00000000114 * MMath.Cos(2.96523316419 + 1166.40685767090 * t);
            rtn += 0.00000000106 * MMath.Cos(5.18592950792 + 2281.23049651060 * t);
            rtn += 0.00000000103 * MMath.Cos(1.63066232967 + 1894.41906467650 * t);
            rtn += 0.00000000102 * MMath.Cos(3.64093193142 + 3171.03224356680 * t);
            rtn += 0.00000000095 * MMath.Cos(1.66362447044 + 1151.42900414390 * t);
            rtn += 0.00000000093 * MMath.Cos(4.88949890397 + 1098.73880610440 * t);
            rtn += 0.00000000092 * MMath.Cos(1.65166124027 + 860.30992875280 * t);
            rtn += 0.00000000080 * MMath.Cos(0.38766601876 + 4694.00295470760 * t);
            rtn += 0.00000000074 * MMath.Cos(3.86865238736 + 3067.93946934820 * t);
            return(rtn);
        }