Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3.2/sources/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/2.3.0/ALGLIB-2.3.0/wsr.cs @ 13783

Last change on this file since 13783 was 2806, checked in by gkronber, 15 years ago

Added plugin for new version of ALGLIB. #875 (Update ALGLIB sources)

File size: 147.0 KB
Line 
1/*************************************************************************
2Copyright (c) 2007, Sergey Bochkanov (ALGLIB project).
3
4>>> SOURCE LICENSE >>>
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation (www.fsf.org); either version 2 of the
8License, or (at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13GNU General Public License for more details.
14
15A copy of the GNU General Public License is available at
16http://www.fsf.org/licensing/licenses
17
18>>> END OF LICENSE >>>
19*************************************************************************/
20
21using System;
22
23namespace alglib
24{
25    public class wsr
26    {
27        /*************************************************************************
28        Wilcoxon signed-rank test
29
30        This test checks three hypotheses about the median  of  the  given sample.
31        The following tests are performed:
32            * two-tailed test (null hypothesis - the median is equal to the  given
33              value)
34            * left-tailed test (null hypothesis - the median is  greater  than  or
35              equal to the given value)
36            * right-tailed test (null hypothesis  -  the  median  is  less than or
37              equal to the given value)
38
39        Requirements:
40            * the scale of measurement should be ordinal, interval or  ratio (i.e.
41              the test could not be applied to nominal variables).
42            * the distribution should be continuous and symmetric relative to  its
43              median.
44            * number of distinct values in the X array should be greater than 4
45
46        The test is non-parametric and doesn't require distribution X to be normal
47
48        Input parameters:
49            X       -   sample. Array whose index goes from 0 to N-1.
50            N       -   size of the sample.
51            Median  -   assumed median value.
52
53        Output parameters:
54            BothTails   -   p-value for two-tailed test.
55                            If BothTails is less than the given significance level
56                            the null hypothesis is rejected.
57            LeftTail    -   p-value for left-tailed test.
58                            If LeftTail is less than the given significance level,
59                            the null hypothesis is rejected.
60            RightTail   -   p-value for right-tailed test.
61                            If RightTail is less than the given significance level
62                            the null hypothesis is rejected.
63
64        To calculate p-values, special approximation is used. This method lets  us
65        calculate p-values with two decimal places in interval [0.0001, 1].
66
67        "Two decimal places" does not sound very impressive, but in  practice  the
68        relative error of less than 1% is enough to make a decision.
69
70        There is no approximation outside the [0.0001, 1] interval. Therefore,  if
71        the significance level outlies this interval, the test returns 0.0001.
72
73          -- ALGLIB --
74             Copyright 08.09.2006 by Bochkanov Sergey
75        *************************************************************************/
76        public static void wilcoxonsignedranktest(double[] x,
77            int n,
78            double e,
79            ref double bothtails,
80            ref double lefttail,
81            ref double righttail)
82        {
83            int i = 0;
84            int j = 0;
85            int k = 0;
86            int t = 0;
87            double tmp = 0;
88            int tmpi = 0;
89            int ns = 0;
90            double[] r = new double[0];
91            int[] c = new int[0];
92            double w = 0;
93            double p = 0;
94            double mp = 0;
95            double s = 0;
96            double sigma = 0;
97            double mu = 0;
98
99            x = (double[])x.Clone();
100
101           
102            //
103            // Prepare
104            //
105            if( n<5 )
106            {
107                bothtails = 1.0;
108                lefttail = 1.0;
109                righttail = 1.0;
110                return;
111            }
112            ns = 0;
113            for(i=0; i<=n-1; i++)
114            {
115                if( (double)(x[i])==(double)(e) )
116                {
117                    continue;
118                }
119                x[ns] = x[i];
120                ns = ns+1;
121            }
122            if( ns<5 )
123            {
124                bothtails = 1.0;
125                lefttail = 1.0;
126                righttail = 1.0;
127                return;
128            }
129            r = new double[ns-1+1];
130            c = new int[ns-1+1];
131            for(i=0; i<=ns-1; i++)
132            {
133                r[i] = Math.Abs(x[i]-e);
134                c[i] = i;
135            }
136           
137            //
138            // sort {R, C}
139            //
140            if( ns!=1 )
141            {
142                i = 2;
143                do
144                {
145                    t = i;
146                    while( t!=1 )
147                    {
148                        k = t/2;
149                        if( (double)(r[k-1])>=(double)(r[t-1]) )
150                        {
151                            t = 1;
152                        }
153                        else
154                        {
155                            tmp = r[k-1];
156                            r[k-1] = r[t-1];
157                            r[t-1] = tmp;
158                            tmpi = c[k-1];
159                            c[k-1] = c[t-1];
160                            c[t-1] = tmpi;
161                            t = k;
162                        }
163                    }
164                    i = i+1;
165                }
166                while( i<=ns );
167                i = ns-1;
168                do
169                {
170                    tmp = r[i];
171                    r[i] = r[0];
172                    r[0] = tmp;
173                    tmpi = c[i];
174                    c[i] = c[0];
175                    c[0] = tmpi;
176                    t = 1;
177                    while( t!=0 )
178                    {
179                        k = 2*t;
180                        if( k>i )
181                        {
182                            t = 0;
183                        }
184                        else
185                        {
186                            if( k<i )
187                            {
188                                if( (double)(r[k])>(double)(r[k-1]) )
189                                {
190                                    k = k+1;
191                                }
192                            }
193                            if( (double)(r[t-1])>=(double)(r[k-1]) )
194                            {
195                                t = 0;
196                            }
197                            else
198                            {
199                                tmp = r[k-1];
200                                r[k-1] = r[t-1];
201                                r[t-1] = tmp;
202                                tmpi = c[k-1];
203                                c[k-1] = c[t-1];
204                                c[t-1] = tmpi;
205                                t = k;
206                            }
207                        }
208                    }
209                    i = i-1;
210                }
211                while( i>=1 );
212            }
213           
214            //
215            // compute tied ranks
216            //
217            i = 0;
218            while( i<=ns-1 )
219            {
220                j = i+1;
221                while( j<=ns-1 )
222                {
223                    if( (double)(r[j])!=(double)(r[i]) )
224                    {
225                        break;
226                    }
227                    j = j+1;
228                }
229                for(k=i; k<=j-1; k++)
230                {
231                    r[k] = 1+((double)(i+j-1))/(double)(2);
232                }
233                i = j;
234            }
235           
236            //
237            // Compute W+
238            //
239            w = 0;
240            for(i=0; i<=ns-1; i++)
241            {
242                if( (double)(x[c[i]])>(double)(e) )
243                {
244                    w = w+r[i];
245                }
246            }
247           
248            //
249            // Result
250            //
251            mu = (double)(ns*(ns+1))/(double)(4);
252            sigma = Math.Sqrt((double)(ns*(ns+1)*(2*ns+1))/(double)(24));
253            s = (w-mu)/sigma;
254            if( (double)(s)<=(double)(0) )
255            {
256                p = Math.Exp(wsigma(-((w-mu)/sigma), ns));
257                mp = 1-Math.Exp(wsigma(-((w-1-mu)/sigma), ns));
258            }
259            else
260            {
261                mp = Math.Exp(wsigma((w-mu)/sigma, ns));
262                p = 1-Math.Exp(wsigma((w+1-mu)/sigma, ns));
263            }
264            bothtails = Math.Max(2*Math.Min(p, mp), 1.0E-4);
265            lefttail = Math.Max(p, 1.0E-4);
266            righttail = Math.Max(mp, 1.0E-4);
267        }
268
269
270        /*************************************************************************
271        Sequential Chebyshev interpolation.
272        *************************************************************************/
273        private static void wcheb(double x,
274            double c,
275            ref double tj,
276            ref double tj1,
277            ref double r)
278        {
279            double t = 0;
280
281            r = r+c*tj;
282            t = 2*x*tj1-tj;
283            tj = tj1;
284            tj1 = t;
285        }
286
287
288        /*************************************************************************
289        Tail(S, 5)
290        *************************************************************************/
291        private static double w5(double s)
292        {
293            double result = 0;
294            int w = 0;
295            double r = 0;
296
297            w = (int)Math.Round(-(3.708099e+00*s)+7.500000e+00);
298            if( w>=7 )
299            {
300                r = -6.931e-01;
301            }
302            if( w==6 )
303            {
304                r = -9.008e-01;
305            }
306            if( w==5 )
307            {
308                r = -1.163e+00;
309            }
310            if( w==4 )
311            {
312                r = -1.520e+00;
313            }
314            if( w==3 )
315            {
316                r = -1.856e+00;
317            }
318            if( w==2 )
319            {
320                r = -2.367e+00;
321            }
322            if( w==1 )
323            {
324                r = -2.773e+00;
325            }
326            if( w<=0 )
327            {
328                r = -3.466e+00;
329            }
330            result = r;
331            return result;
332        }
333
334
335        /*************************************************************************
336        Tail(S, 6)
337        *************************************************************************/
338        private static double w6(double s)
339        {
340            double result = 0;
341            int w = 0;
342            double r = 0;
343
344            w = (int)Math.Round(-(4.769696e+00*s)+1.050000e+01);
345            if( w>=10 )
346            {
347                r = -6.931e-01;
348            }
349            if( w==9 )
350            {
351                r = -8.630e-01;
352            }
353            if( w==8 )
354            {
355                r = -1.068e+00;
356            }
357            if( w==7 )
358            {
359                r = -1.269e+00;
360            }
361            if( w==6 )
362            {
363                r = -1.520e+00;
364            }
365            if( w==5 )
366            {
367                r = -1.856e+00;
368            }
369            if( w==4 )
370            {
371                r = -2.213e+00;
372            }
373            if( w==3 )
374            {
375                r = -2.549e+00;
376            }
377            if( w==2 )
378            {
379                r = -3.060e+00;
380            }
381            if( w==1 )
382            {
383                r = -3.466e+00;
384            }
385            if( w<=0 )
386            {
387                r = -4.159e+00;
388            }
389            result = r;
390            return result;
391        }
392
393
394        /*************************************************************************
395        Tail(S, 7)
396        *************************************************************************/
397        private static double w7(double s)
398        {
399            double result = 0;
400            int w = 0;
401            double r = 0;
402
403            w = (int)Math.Round(-(5.916080e+00*s)+1.400000e+01);
404            if( w>=14 )
405            {
406                r = -6.325e-01;
407            }
408            if( w==13 )
409            {
410                r = -7.577e-01;
411            }
412            if( w==12 )
413            {
414                r = -9.008e-01;
415            }
416            if( w==11 )
417            {
418                r = -1.068e+00;
419            }
420            if( w==10 )
421            {
422                r = -1.241e+00;
423            }
424            if( w==9 )
425            {
426                r = -1.451e+00;
427            }
428            if( w==8 )
429            {
430                r = -1.674e+00;
431            }
432            if( w==7 )
433            {
434                r = -1.908e+00;
435            }
436            if( w==6 )
437            {
438                r = -2.213e+00;
439            }
440            if( w==5 )
441            {
442                r = -2.549e+00;
443            }
444            if( w==4 )
445            {
446                r = -2.906e+00;
447            }
448            if( w==3 )
449            {
450                r = -3.243e+00;
451            }
452            if( w==2 )
453            {
454                r = -3.753e+00;
455            }
456            if( w==1 )
457            {
458                r = -4.159e+00;
459            }
460            if( w<=0 )
461            {
462                r = -4.852e+00;
463            }
464            result = r;
465            return result;
466        }
467
468
469        /*************************************************************************
470        Tail(S, 8)
471        *************************************************************************/
472        private static double w8(double s)
473        {
474            double result = 0;
475            int w = 0;
476            double r = 0;
477
478            w = (int)Math.Round(-(7.141428e+00*s)+1.800000e+01);
479            if( w>=18 )
480            {
481                r = -6.399e-01;
482            }
483            if( w==17 )
484            {
485                r = -7.494e-01;
486            }
487            if( w==16 )
488            {
489                r = -8.630e-01;
490            }
491            if( w==15 )
492            {
493                r = -9.913e-01;
494            }
495            if( w==14 )
496            {
497                r = -1.138e+00;
498            }
499            if( w==13 )
500            {
501                r = -1.297e+00;
502            }
503            if( w==12 )
504            {
505                r = -1.468e+00;
506            }
507            if( w==11 )
508            {
509                r = -1.653e+00;
510            }
511            if( w==10 )
512            {
513                r = -1.856e+00;
514            }
515            if( w==9 )
516            {
517                r = -2.079e+00;
518            }
519            if( w==8 )
520            {
521                r = -2.326e+00;
522            }
523            if( w==7 )
524            {
525                r = -2.601e+00;
526            }
527            if( w==6 )
528            {
529                r = -2.906e+00;
530            }
531            if( w==5 )
532            {
533                r = -3.243e+00;
534            }
535            if( w==4 )
536            {
537                r = -3.599e+00;
538            }
539            if( w==3 )
540            {
541                r = -3.936e+00;
542            }
543            if( w==2 )
544            {
545                r = -4.447e+00;
546            }
547            if( w==1 )
548            {
549                r = -4.852e+00;
550            }
551            if( w<=0 )
552            {
553                r = -5.545e+00;
554            }
555            result = r;
556            return result;
557        }
558
559
560        /*************************************************************************
561        Tail(S, 9)
562        *************************************************************************/
563        private static double w9(double s)
564        {
565            double result = 0;
566            int w = 0;
567            double r = 0;
568
569            w = (int)Math.Round(-(8.440972e+00*s)+2.250000e+01);
570            if( w>=22 )
571            {
572                r = -6.931e-01;
573            }
574            if( w==21 )
575            {
576                r = -7.873e-01;
577            }
578            if( w==20 )
579            {
580                r = -8.912e-01;
581            }
582            if( w==19 )
583            {
584                r = -1.002e+00;
585            }
586            if( w==18 )
587            {
588                r = -1.120e+00;
589            }
590            if( w==17 )
591            {
592                r = -1.255e+00;
593            }
594            if( w==16 )
595            {
596                r = -1.394e+00;
597            }
598            if( w==15 )
599            {
600                r = -1.547e+00;
601            }
602            if( w==14 )
603            {
604                r = -1.717e+00;
605            }
606            if( w==13 )
607            {
608                r = -1.895e+00;
609            }
610            if( w==12 )
611            {
612                r = -2.079e+00;
613            }
614            if( w==11 )
615            {
616                r = -2.287e+00;
617            }
618            if( w==10 )
619            {
620                r = -2.501e+00;
621            }
622            if( w==9 )
623            {
624                r = -2.742e+00;
625            }
626            if( w==8 )
627            {
628                r = -3.019e+00;
629            }
630            if( w==7 )
631            {
632                r = -3.294e+00;
633            }
634            if( w==6 )
635            {
636                r = -3.599e+00;
637            }
638            if( w==5 )
639            {
640                r = -3.936e+00;
641            }
642            if( w==4 )
643            {
644                r = -4.292e+00;
645            }
646            if( w==3 )
647            {
648                r = -4.629e+00;
649            }
650            if( w==2 )
651            {
652                r = -5.140e+00;
653            }
654            if( w==1 )
655            {
656                r = -5.545e+00;
657            }
658            if( w<=0 )
659            {
660                r = -6.238e+00;
661            }
662            result = r;
663            return result;
664        }
665
666
667        /*************************************************************************
668        Tail(S, 10)
669        *************************************************************************/
670        private static double w10(double s)
671        {
672            double result = 0;
673            int w = 0;
674            double r = 0;
675
676            w = (int)Math.Round(-(9.810708e+00*s)+2.750000e+01);
677            if( w>=27 )
678            {
679                r = -6.931e-01;
680            }
681            if( w==26 )
682            {
683                r = -7.745e-01;
684            }
685            if( w==25 )
686            {
687                r = -8.607e-01;
688            }
689            if( w==24 )
690            {
691                r = -9.551e-01;
692            }
693            if( w==23 )
694            {
695                r = -1.057e+00;
696            }
697            if( w==22 )
698            {
699                r = -1.163e+00;
700            }
701            if( w==21 )
702            {
703                r = -1.279e+00;
704            }
705            if( w==20 )
706            {
707                r = -1.402e+00;
708            }
709            if( w==19 )
710            {
711                r = -1.533e+00;
712            }
713            if( w==18 )
714            {
715                r = -1.674e+00;
716            }
717            if( w==17 )
718            {
719                r = -1.826e+00;
720            }
721            if( w==16 )
722            {
723                r = -1.983e+00;
724            }
725            if( w==15 )
726            {
727                r = -2.152e+00;
728            }
729            if( w==14 )
730            {
731                r = -2.336e+00;
732            }
733            if( w==13 )
734            {
735                r = -2.525e+00;
736            }
737            if( w==12 )
738            {
739                r = -2.727e+00;
740            }
741            if( w==11 )
742            {
743                r = -2.942e+00;
744            }
745            if( w==10 )
746            {
747                r = -3.170e+00;
748            }
749            if( w==9 )
750            {
751                r = -3.435e+00;
752            }
753            if( w==8 )
754            {
755                r = -3.713e+00;
756            }
757            if( w==7 )
758            {
759                r = -3.987e+00;
760            }
761            if( w==6 )
762            {
763                r = -4.292e+00;
764            }
765            if( w==5 )
766            {
767                r = -4.629e+00;
768            }
769            if( w==4 )
770            {
771                r = -4.986e+00;
772            }
773            if( w==3 )
774            {
775                r = -5.322e+00;
776            }
777            if( w==2 )
778            {
779                r = -5.833e+00;
780            }
781            if( w==1 )
782            {
783                r = -6.238e+00;
784            }
785            if( w<=0 )
786            {
787                r = -6.931e+00;
788            }
789            result = r;
790            return result;
791        }
792
793
794        /*************************************************************************
795        Tail(S, 11)
796        *************************************************************************/
797        private static double w11(double s)
798        {
799            double result = 0;
800            int w = 0;
801            double r = 0;
802
803            w = (int)Math.Round(-(1.124722e+01*s)+3.300000e+01);
804            if( w>=33 )
805            {
806                r = -6.595e-01;
807            }
808            if( w==32 )
809            {
810                r = -7.279e-01;
811            }
812            if( w==31 )
813            {
814                r = -8.002e-01;
815            }
816            if( w==30 )
817            {
818                r = -8.782e-01;
819            }
820            if( w==29 )
821            {
822                r = -9.615e-01;
823            }
824            if( w==28 )
825            {
826                r = -1.050e+00;
827            }
828            if( w==27 )
829            {
830                r = -1.143e+00;
831            }
832            if( w==26 )
833            {
834                r = -1.243e+00;
835            }
836            if( w==25 )
837            {
838                r = -1.348e+00;
839            }
840            if( w==24 )
841            {
842                r = -1.459e+00;
843            }
844            if( w==23 )
845            {
846                r = -1.577e+00;
847            }
848            if( w==22 )
849            {
850                r = -1.700e+00;
851            }
852            if( w==21 )
853            {
854                r = -1.832e+00;
855            }
856            if( w==20 )
857            {
858                r = -1.972e+00;
859            }
860            if( w==19 )
861            {
862                r = -2.119e+00;
863            }
864            if( w==18 )
865            {
866                r = -2.273e+00;
867            }
868            if( w==17 )
869            {
870                r = -2.437e+00;
871            }
872            if( w==16 )
873            {
874                r = -2.607e+00;
875            }
876            if( w==15 )
877            {
878                r = -2.788e+00;
879            }
880            if( w==14 )
881            {
882                r = -2.980e+00;
883            }
884            if( w==13 )
885            {
886                r = -3.182e+00;
887            }
888            if( w==12 )
889            {
890                r = -3.391e+00;
891            }
892            if( w==11 )
893            {
894                r = -3.617e+00;
895            }
896            if( w==10 )
897            {
898                r = -3.863e+00;
899            }
900            if( w==9 )
901            {
902                r = -4.128e+00;
903            }
904            if( w==8 )
905            {
906                r = -4.406e+00;
907            }
908            if( w==7 )
909            {
910                r = -4.680e+00;
911            }
912            if( w==6 )
913            {
914                r = -4.986e+00;
915            }
916            if( w==5 )
917            {
918                r = -5.322e+00;
919            }
920            if( w==4 )
921            {
922                r = -5.679e+00;
923            }
924            if( w==3 )
925            {
926                r = -6.015e+00;
927            }
928            if( w==2 )
929            {
930                r = -6.526e+00;
931            }
932            if( w==1 )
933            {
934                r = -6.931e+00;
935            }
936            if( w<=0 )
937            {
938                r = -7.625e+00;
939            }
940            result = r;
941            return result;
942        }
943
944
945        /*************************************************************************
946        Tail(S, 12)
947        *************************************************************************/
948        private static double w12(double s)
949        {
950            double result = 0;
951            int w = 0;
952            double r = 0;
953
954            w = (int)Math.Round(-(1.274755e+01*s)+3.900000e+01);
955            if( w>=39 )
956            {
957                r = -6.633e-01;
958            }
959            if( w==38 )
960            {
961                r = -7.239e-01;
962            }
963            if( w==37 )
964            {
965                r = -7.878e-01;
966            }
967            if( w==36 )
968            {
969                r = -8.556e-01;
970            }
971            if( w==35 )
972            {
973                r = -9.276e-01;
974            }
975            if( w==34 )
976            {
977                r = -1.003e+00;
978            }
979            if( w==33 )
980            {
981                r = -1.083e+00;
982            }
983            if( w==32 )
984            {
985                r = -1.168e+00;
986            }
987            if( w==31 )
988            {
989                r = -1.256e+00;
990            }
991            if( w==30 )
992            {
993                r = -1.350e+00;
994            }
995            if( w==29 )
996            {
997                r = -1.449e+00;
998            }
999            if( w==28 )
1000            {
1001                r = -1.552e+00;
1002            }
1003            if( w==27 )
1004            {
1005                r = -1.660e+00;
1006            }
1007            if( w==26 )
1008            {
1009                r = -1.774e+00;
1010            }
1011            if( w==25 )
1012            {
1013                r = -1.893e+00;
1014            }
1015            if( w==24 )
1016            {
1017                r = -2.017e+00;
1018            }
1019            if( w==23 )
1020            {
1021                r = -2.148e+00;
1022            }
1023            if( w==22 )
1024            {
1025                r = -2.285e+00;
1026            }
1027            if( w==21 )
1028            {
1029                r = -2.429e+00;
1030            }
1031            if( w==20 )
1032            {
1033                r = -2.581e+00;
1034            }
1035            if( w==19 )
1036            {
1037                r = -2.738e+00;
1038            }
1039            if( w==18 )
1040            {
1041                r = -2.902e+00;
1042            }
1043            if( w==17 )
1044            {
1045                r = -3.076e+00;
1046            }
1047            if( w==16 )
1048            {
1049                r = -3.255e+00;
1050            }
1051            if( w==15 )
1052            {
1053                r = -3.443e+00;
1054            }
1055            if( w==14 )
1056            {
1057                r = -3.645e+00;
1058            }
1059            if( w==13 )
1060            {
1061                r = -3.852e+00;
1062            }
1063            if( w==12 )
1064            {
1065                r = -4.069e+00;
1066            }
1067            if( w==11 )
1068            {
1069                r = -4.310e+00;
1070            }
1071            if( w==10 )
1072            {
1073                r = -4.557e+00;
1074            }
1075            if( w==9 )
1076            {
1077                r = -4.821e+00;
1078            }
1079            if( w==8 )
1080            {
1081                r = -5.099e+00;
1082            }
1083            if( w==7 )
1084            {
1085                r = -5.373e+00;
1086            }
1087            if( w==6 )
1088            {
1089                r = -5.679e+00;
1090            }
1091            if( w==5 )
1092            {
1093                r = -6.015e+00;
1094            }
1095            if( w==4 )
1096            {
1097                r = -6.372e+00;
1098            }
1099            if( w==3 )
1100            {
1101                r = -6.708e+00;
1102            }
1103            if( w==2 )
1104            {
1105                r = -7.219e+00;
1106            }
1107            if( w==1 )
1108            {
1109                r = -7.625e+00;
1110            }
1111            if( w<=0 )
1112            {
1113                r = -8.318e+00;
1114            }
1115            result = r;
1116            return result;
1117        }
1118
1119
1120        /*************************************************************************
1121        Tail(S, 13)
1122        *************************************************************************/
1123        private static double w13(double s)
1124        {
1125            double result = 0;
1126            int w = 0;
1127            double r = 0;
1128
1129            w = (int)Math.Round(-(1.430909e+01*s)+4.550000e+01);
1130            if( w>=45 )
1131            {
1132                r = -6.931e-01;
1133            }
1134            if( w==44 )
1135            {
1136                r = -7.486e-01;
1137            }
1138            if( w==43 )
1139            {
1140                r = -8.068e-01;
1141            }
1142            if( w==42 )
1143            {
1144                r = -8.683e-01;
1145            }
1146            if( w==41 )
1147            {
1148                r = -9.328e-01;
1149            }
1150            if( w==40 )
1151            {
1152                r = -1.001e+00;
1153            }
1154            if( w==39 )
1155            {
1156                r = -1.072e+00;
1157            }
1158            if( w==38 )
1159            {
1160                r = -1.146e+00;
1161            }
1162            if( w==37 )
1163            {
1164                r = -1.224e+00;
1165            }
1166            if( w==36 )
1167            {
1168                r = -1.306e+00;
1169            }
1170            if( w==35 )
1171            {
1172                r = -1.392e+00;
1173            }
1174            if( w==34 )
1175            {
1176                r = -1.481e+00;
1177            }
1178            if( w==33 )
1179            {
1180                r = -1.574e+00;
1181            }
1182            if( w==32 )
1183            {
1184                r = -1.672e+00;
1185            }
1186            if( w==31 )
1187            {
1188                r = -1.773e+00;
1189            }
1190            if( w==30 )
1191            {
1192                r = -1.879e+00;
1193            }
1194            if( w==29 )
1195            {
1196                r = -1.990e+00;
1197            }
1198            if( w==28 )
1199            {
1200                r = -2.104e+00;
1201            }
1202            if( w==27 )
1203            {
1204                r = -2.224e+00;
1205            }
1206            if( w==26 )
1207            {
1208                r = -2.349e+00;
1209            }
1210            if( w==25 )
1211            {
1212                r = -2.479e+00;
1213            }
1214            if( w==24 )
1215            {
1216                r = -2.614e+00;
1217            }
1218            if( w==23 )
1219            {
1220                r = -2.755e+00;
1221            }
1222            if( w==22 )
1223            {
1224                r = -2.902e+00;
1225            }
1226            if( w==21 )
1227            {
1228                r = -3.055e+00;
1229            }
1230            if( w==20 )
1231            {
1232                r = -3.215e+00;
1233            }
1234            if( w==19 )
1235            {
1236                r = -3.380e+00;
1237            }
1238            if( w==18 )
1239            {
1240                r = -3.551e+00;
1241            }
1242            if( w==17 )
1243            {
1244                r = -3.733e+00;
1245            }
1246            if( w==16 )
1247            {
1248                r = -3.917e+00;
1249            }
1250            if( w==15 )
1251            {
1252                r = -4.113e+00;
1253            }
1254            if( w==14 )
1255            {
1256                r = -4.320e+00;
1257            }
1258            if( w==13 )
1259            {
1260                r = -4.534e+00;
1261            }
1262            if( w==12 )
1263            {
1264                r = -4.762e+00;
1265            }
1266            if( w==11 )
1267            {
1268                r = -5.004e+00;
1269            }
1270            if( w==10 )
1271            {
1272                r = -5.250e+00;
1273            }
1274            if( w==9 )
1275            {
1276                r = -5.514e+00;
1277            }
1278            if( w==8 )
1279            {
1280                r = -5.792e+00;
1281            }
1282            if( w==7 )
1283            {
1284                r = -6.066e+00;
1285            }
1286            if( w==6 )
1287            {
1288                r = -6.372e+00;
1289            }
1290            if( w==5 )
1291            {
1292                r = -6.708e+00;
1293            }
1294            if( w==4 )
1295            {
1296                r = -7.065e+00;
1297            }
1298            if( w==3 )
1299            {
1300                r = -7.401e+00;
1301            }
1302            if( w==2 )
1303            {
1304                r = -7.912e+00;
1305            }
1306            if( w==1 )
1307            {
1308                r = -8.318e+00;
1309            }
1310            if( w<=0 )
1311            {
1312                r = -9.011e+00;
1313            }
1314            result = r;
1315            return result;
1316        }
1317
1318
1319        /*************************************************************************
1320        Tail(S, 14)
1321        *************************************************************************/
1322        private static double w14(double s)
1323        {
1324            double result = 0;
1325            int w = 0;
1326            double r = 0;
1327
1328            w = (int)Math.Round(-(1.592953e+01*s)+5.250000e+01);
1329            if( w>=52 )
1330            {
1331                r = -6.931e-01;
1332            }
1333            if( w==51 )
1334            {
1335                r = -7.428e-01;
1336            }
1337            if( w==50 )
1338            {
1339                r = -7.950e-01;
1340            }
1341            if( w==49 )
1342            {
1343                r = -8.495e-01;
1344            }
1345            if( w==48 )
1346            {
1347                r = -9.067e-01;
1348            }
1349            if( w==47 )
1350            {
1351                r = -9.664e-01;
1352            }
1353            if( w==46 )
1354            {
1355                r = -1.029e+00;
1356            }
1357            if( w==45 )
1358            {
1359                r = -1.094e+00;
1360            }
1361            if( w==44 )
1362            {
1363                r = -1.162e+00;
1364            }
1365            if( w==43 )
1366            {
1367                r = -1.233e+00;
1368            }
1369            if( w==42 )
1370            {
1371                r = -1.306e+00;
1372            }
1373            if( w==41 )
1374            {
1375                r = -1.383e+00;
1376            }
1377            if( w==40 )
1378            {
1379                r = -1.463e+00;
1380            }
1381            if( w==39 )
1382            {
1383                r = -1.546e+00;
1384            }
1385            if( w==38 )
1386            {
1387                r = -1.632e+00;
1388            }
1389            if( w==37 )
1390            {
1391                r = -1.722e+00;
1392            }
1393            if( w==36 )
1394            {
1395                r = -1.815e+00;
1396            }
1397            if( w==35 )
1398            {
1399                r = -1.911e+00;
1400            }
1401            if( w==34 )
1402            {
1403                r = -2.011e+00;
1404            }
1405            if( w==33 )
1406            {
1407                r = -2.115e+00;
1408            }
1409            if( w==32 )
1410            {
1411                r = -2.223e+00;
1412            }
1413            if( w==31 )
1414            {
1415                r = -2.334e+00;
1416            }
1417            if( w==30 )
1418            {
1419                r = -2.450e+00;
1420            }
1421            if( w==29 )
1422            {
1423                r = -2.570e+00;
1424            }
1425            if( w==28 )
1426            {
1427                r = -2.694e+00;
1428            }
1429            if( w==27 )
1430            {
1431                r = -2.823e+00;
1432            }
1433            if( w==26 )
1434            {
1435                r = -2.956e+00;
1436            }
1437            if( w==25 )
1438            {
1439                r = -3.095e+00;
1440            }
1441            if( w==24 )
1442            {
1443                r = -3.238e+00;
1444            }
1445            if( w==23 )
1446            {
1447                r = -3.387e+00;
1448            }
1449            if( w==22 )
1450            {
1451                r = -3.541e+00;
1452            }
1453            if( w==21 )
1454            {
1455                r = -3.700e+00;
1456            }
1457            if( w==20 )
1458            {
1459                r = -3.866e+00;
1460            }
1461            if( w==19 )
1462            {
1463                r = -4.038e+00;
1464            }
1465            if( w==18 )
1466            {
1467                r = -4.215e+00;
1468            }
1469            if( w==17 )
1470            {
1471                r = -4.401e+00;
1472            }
1473            if( w==16 )
1474            {
1475                r = -4.592e+00;
1476            }
1477            if( w==15 )
1478            {
1479                r = -4.791e+00;
1480            }
1481            if( w==14 )
1482            {
1483                r = -5.004e+00;
1484            }
1485            if( w==13 )
1486            {
1487                r = -5.227e+00;
1488            }
1489            if( w==12 )
1490            {
1491                r = -5.456e+00;
1492            }
1493            if( w==11 )
1494            {
1495                r = -5.697e+00;
1496            }
1497            if( w==10 )
1498            {
1499                r = -5.943e+00;
1500            }
1501            if( w==9 )
1502            {
1503                r = -6.208e+00;
1504            }
1505            if( w==8 )
1506            {
1507                r = -6.485e+00;
1508            }
1509            if( w==7 )
1510            {
1511                r = -6.760e+00;
1512            }
1513            if( w==6 )
1514            {
1515                r = -7.065e+00;
1516            }
1517            if( w==5 )
1518            {
1519                r = -7.401e+00;
1520            }
1521            if( w==4 )
1522            {
1523                r = -7.758e+00;
1524            }
1525            if( w==3 )
1526            {
1527                r = -8.095e+00;
1528            }
1529            if( w==2 )
1530            {
1531                r = -8.605e+00;
1532            }
1533            if( w==1 )
1534            {
1535                r = -9.011e+00;
1536            }
1537            if( w<=0 )
1538            {
1539                r = -9.704e+00;
1540            }
1541            result = r;
1542            return result;
1543        }
1544
1545
1546        /*************************************************************************
1547        Tail(S, 15)
1548        *************************************************************************/
1549        private static double w15(double s)
1550        {
1551            double result = 0;
1552            int w = 0;
1553            double r = 0;
1554
1555            w = (int)Math.Round(-(1.760682e+01*s)+6.000000e+01);
1556            if( w>=60 )
1557            {
1558                r = -6.714e-01;
1559            }
1560            if( w==59 )
1561            {
1562                r = -7.154e-01;
1563            }
1564            if( w==58 )
1565            {
1566                r = -7.613e-01;
1567            }
1568            if( w==57 )
1569            {
1570                r = -8.093e-01;
1571            }
1572            if( w==56 )
1573            {
1574                r = -8.593e-01;
1575            }
1576            if( w==55 )
1577            {
1578                r = -9.114e-01;
1579            }
1580            if( w==54 )
1581            {
1582                r = -9.656e-01;
1583            }
1584            if( w==53 )
1585            {
1586                r = -1.022e+00;
1587            }
1588            if( w==52 )
1589            {
1590                r = -1.081e+00;
1591            }
1592            if( w==51 )
1593            {
1594                r = -1.142e+00;
1595            }
1596            if( w==50 )
1597            {
1598                r = -1.205e+00;
1599            }
1600            if( w==49 )
1601            {
1602                r = -1.270e+00;
1603            }
1604            if( w==48 )
1605            {
1606                r = -1.339e+00;
1607            }
1608            if( w==47 )
1609            {
1610                r = -1.409e+00;
1611            }
1612            if( w==46 )
1613            {
1614                r = -1.482e+00;
1615            }
1616            if( w==45 )
1617            {
1618                r = -1.558e+00;
1619            }
1620            if( w==44 )
1621            {
1622                r = -1.636e+00;
1623            }
1624            if( w==43 )
1625            {
1626                r = -1.717e+00;
1627            }
1628            if( w==42 )
1629            {
1630                r = -1.801e+00;
1631            }
1632            if( w==41 )
1633            {
1634                r = -1.888e+00;
1635            }
1636            if( w==40 )
1637            {
1638                r = -1.977e+00;
1639            }
1640            if( w==39 )
1641            {
1642                r = -2.070e+00;
1643            }
1644            if( w==38 )
1645            {
1646                r = -2.166e+00;
1647            }
1648            if( w==37 )
1649            {
1650                r = -2.265e+00;
1651            }
1652            if( w==36 )
1653            {
1654                r = -2.366e+00;
1655            }
1656            if( w==35 )
1657            {
1658                r = -2.472e+00;
1659            }
1660            if( w==34 )
1661            {
1662                r = -2.581e+00;
1663            }
1664            if( w==33 )
1665            {
1666                r = -2.693e+00;
1667            }
1668            if( w==32 )
1669            {
1670                r = -2.809e+00;
1671            }
1672            if( w==31 )
1673            {
1674                r = -2.928e+00;
1675            }
1676            if( w==30 )
1677            {
1678                r = -3.051e+00;
1679            }
1680            if( w==29 )
1681            {
1682                r = -3.179e+00;
1683            }
1684            if( w==28 )
1685            {
1686                r = -3.310e+00;
1687            }
1688            if( w==27 )
1689            {
1690                r = -3.446e+00;
1691            }
1692            if( w==26 )
1693            {
1694                r = -3.587e+00;
1695            }
1696            if( w==25 )
1697            {
1698                r = -3.732e+00;
1699            }
1700            if( w==24 )
1701            {
1702                r = -3.881e+00;
1703            }
1704            if( w==23 )
1705            {
1706                r = -4.036e+00;
1707            }
1708            if( w==22 )
1709            {
1710                r = -4.195e+00;
1711            }
1712            if( w==21 )
1713            {
1714                r = -4.359e+00;
1715            }
1716            if( w==20 )
1717            {
1718                r = -4.531e+00;
1719            }
1720            if( w==19 )
1721            {
1722                r = -4.707e+00;
1723            }
1724            if( w==18 )
1725            {
1726                r = -4.888e+00;
1727            }
1728            if( w==17 )
1729            {
1730                r = -5.079e+00;
1731            }
1732            if( w==16 )
1733            {
1734                r = -5.273e+00;
1735            }
1736            if( w==15 )
1737            {
1738                r = -5.477e+00;
1739            }
1740            if( w==14 )
1741            {
1742                r = -5.697e+00;
1743            }
1744            if( w==13 )
1745            {
1746                r = -5.920e+00;
1747            }
1748            if( w==12 )
1749            {
1750                r = -6.149e+00;
1751            }
1752            if( w==11 )
1753            {
1754                r = -6.390e+00;
1755            }
1756            if( w==10 )
1757            {
1758                r = -6.636e+00;
1759            }
1760            if( w==9 )
1761            {
1762                r = -6.901e+00;
1763            }
1764            if( w==8 )
1765            {
1766                r = -7.178e+00;
1767            }
1768            if( w==7 )
1769            {
1770                r = -7.453e+00;
1771            }
1772            if( w==6 )
1773            {
1774                r = -7.758e+00;
1775            }
1776            if( w==5 )
1777            {
1778                r = -8.095e+00;
1779            }
1780            if( w==4 )
1781            {
1782                r = -8.451e+00;
1783            }
1784            if( w==3 )
1785            {
1786                r = -8.788e+00;
1787            }
1788            if( w==2 )
1789            {
1790                r = -9.299e+00;
1791            }
1792            if( w==1 )
1793            {
1794                r = -9.704e+00;
1795            }
1796            if( w<=0 )
1797            {
1798                r = -1.040e+01;
1799            }
1800            result = r;
1801            return result;
1802        }
1803
1804
1805        /*************************************************************************
1806        Tail(S, 16)
1807        *************************************************************************/
1808        private static double w16(double s)
1809        {
1810            double result = 0;
1811            int w = 0;
1812            double r = 0;
1813
1814            w = (int)Math.Round(-(1.933908e+01*s)+6.800000e+01);
1815            if( w>=68 )
1816            {
1817                r = -6.733e-01;
1818            }
1819            if( w==67 )
1820            {
1821                r = -7.134e-01;
1822            }
1823            if( w==66 )
1824            {
1825                r = -7.551e-01;
1826            }
1827            if( w==65 )
1828            {
1829                r = -7.986e-01;
1830            }
1831            if( w==64 )
1832            {
1833                r = -8.437e-01;
1834            }
1835            if( w==63 )
1836            {
1837                r = -8.905e-01;
1838            }
1839            if( w==62 )
1840            {
1841                r = -9.391e-01;
1842            }
1843            if( w==61 )
1844            {
1845                r = -9.895e-01;
1846            }
1847            if( w==60 )
1848            {
1849                r = -1.042e+00;
1850            }
1851            if( w==59 )
1852            {
1853                r = -1.096e+00;
1854            }
1855            if( w==58 )
1856            {
1857                r = -1.152e+00;
1858            }
1859            if( w==57 )
1860            {
1861                r = -1.210e+00;
1862            }
1863            if( w==56 )
1864            {
1865                r = -1.270e+00;
1866            }
1867            if( w==55 )
1868            {
1869                r = -1.331e+00;
1870            }
1871            if( w==54 )
1872            {
1873                r = -1.395e+00;
1874            }
1875            if( w==53 )
1876            {
1877                r = -1.462e+00;
1878            }
1879            if( w==52 )
1880            {
1881                r = -1.530e+00;
1882            }
1883            if( w==51 )
1884            {
1885                r = -1.600e+00;
1886            }
1887            if( w==50 )
1888            {
1889                r = -1.673e+00;
1890            }
1891            if( w==49 )
1892            {
1893                r = -1.748e+00;
1894            }
1895            if( w==48 )
1896            {
1897                r = -1.825e+00;
1898            }
1899            if( w==47 )
1900            {
1901                r = -1.904e+00;
1902            }
1903            if( w==46 )
1904            {
1905                r = -1.986e+00;
1906            }
1907            if( w==45 )
1908            {
1909                r = -2.071e+00;
1910            }
1911            if( w==44 )
1912            {
1913                r = -2.158e+00;
1914            }
1915            if( w==43 )
1916            {
1917                r = -2.247e+00;
1918            }
1919            if( w==42 )
1920            {
1921                r = -2.339e+00;
1922            }
1923            if( w==41 )
1924            {
1925                r = -2.434e+00;
1926            }
1927            if( w==40 )
1928            {
1929                r = -2.532e+00;
1930            }
1931            if( w==39 )
1932            {
1933                r = -2.632e+00;
1934            }
1935            if( w==38 )
1936            {
1937                r = -2.735e+00;
1938            }
1939            if( w==37 )
1940            {
1941                r = -2.842e+00;
1942            }
1943            if( w==36 )
1944            {
1945                r = -2.951e+00;
1946            }
1947            if( w==35 )
1948            {
1949                r = -3.064e+00;
1950            }
1951            if( w==34 )
1952            {
1953                r = -3.179e+00;
1954            }
1955            if( w==33 )
1956            {
1957                r = -3.298e+00;
1958            }
1959            if( w==32 )
1960            {
1961                r = -3.420e+00;
1962            }
1963            if( w==31 )
1964            {
1965                r = -3.546e+00;
1966            }
1967            if( w==30 )
1968            {
1969                r = -3.676e+00;
1970            }
1971            if( w==29 )
1972            {
1973                r = -3.810e+00;
1974            }
1975            if( w==28 )
1976            {
1977                r = -3.947e+00;
1978            }
1979            if( w==27 )
1980            {
1981                r = -4.088e+00;
1982            }
1983            if( w==26 )
1984            {
1985                r = -4.234e+00;
1986            }
1987            if( w==25 )
1988            {
1989                r = -4.383e+00;
1990            }
1991            if( w==24 )
1992            {
1993                r = -4.538e+00;
1994            }
1995            if( w==23 )
1996            {
1997                r = -4.697e+00;
1998            }
1999            if( w==22 )
2000            {
2001                r = -4.860e+00;
2002            }
2003            if( w==21 )
2004            {
2005                r = -5.029e+00;
2006            }
2007            if( w==20 )
2008            {
2009                r = -5.204e+00;
2010            }
2011            if( w==19 )
2012            {
2013                r = -5.383e+00;
2014            }
2015            if( w==18 )
2016            {
2017                r = -5.569e+00;
2018            }
2019            if( w==17 )
2020            {
2021                r = -5.762e+00;
2022            }
2023            if( w==16 )
2024            {
2025                r = -5.960e+00;
2026            }
2027            if( w==15 )
2028            {
2029                r = -6.170e+00;
2030            }
2031            if( w==14 )
2032            {
2033                r = -6.390e+00;
2034            }
2035            if( w==13 )
2036            {
2037                r = -6.613e+00;
2038            }
2039            if( w==12 )
2040            {
2041                r = -6.842e+00;
2042            }
2043            if( w==11 )
2044            {
2045                r = -7.083e+00;
2046            }
2047            if( w==10 )
2048            {
2049                r = -7.329e+00;
2050            }
2051            if( w==9 )
2052            {
2053                r = -7.594e+00;
2054            }
2055            if( w==8 )
2056            {
2057                r = -7.871e+00;
2058            }
2059            if( w==7 )
2060            {
2061                r = -8.146e+00;
2062            }
2063            if( w==6 )
2064            {
2065                r = -8.451e+00;
2066            }
2067            if( w==5 )
2068            {
2069                r = -8.788e+00;
2070            }
2071            if( w==4 )
2072            {
2073                r = -9.144e+00;
2074            }
2075            if( w==3 )
2076            {
2077                r = -9.481e+00;
2078            }
2079            if( w==2 )
2080            {
2081                r = -9.992e+00;
2082            }
2083            if( w==1 )
2084            {
2085                r = -1.040e+01;
2086            }
2087            if( w<=0 )
2088            {
2089                r = -1.109e+01;
2090            }
2091            result = r;
2092            return result;
2093        }
2094
2095
2096        /*************************************************************************
2097        Tail(S, 17)
2098        *************************************************************************/
2099        private static double w17(double s)
2100        {
2101            double result = 0;
2102            int w = 0;
2103            double r = 0;
2104
2105            w = (int)Math.Round(-(2.112463e+01*s)+7.650000e+01);
2106            if( w>=76 )
2107            {
2108                r = -6.931e-01;
2109            }
2110            if( w==75 )
2111            {
2112                r = -7.306e-01;
2113            }
2114            if( w==74 )
2115            {
2116                r = -7.695e-01;
2117            }
2118            if( w==73 )
2119            {
2120                r = -8.097e-01;
2121            }
2122            if( w==72 )
2123            {
2124                r = -8.514e-01;
2125            }
2126            if( w==71 )
2127            {
2128                r = -8.946e-01;
2129            }
2130            if( w==70 )
2131            {
2132                r = -9.392e-01;
2133            }
2134            if( w==69 )
2135            {
2136                r = -9.853e-01;
2137            }
2138            if( w==68 )
2139            {
2140                r = -1.033e+00;
2141            }
2142            if( w==67 )
2143            {
2144                r = -1.082e+00;
2145            }
2146            if( w==66 )
2147            {
2148                r = -1.133e+00;
2149            }
2150            if( w==65 )
2151            {
2152                r = -1.185e+00;
2153            }
2154            if( w==64 )
2155            {
2156                r = -1.240e+00;
2157            }
2158            if( w==63 )
2159            {
2160                r = -1.295e+00;
2161            }
2162            if( w==62 )
2163            {
2164                r = -1.353e+00;
2165            }
2166            if( w==61 )
2167            {
2168                r = -1.412e+00;
2169            }
2170            if( w==60 )
2171            {
2172                r = -1.473e+00;
2173            }
2174            if( w==59 )
2175            {
2176                r = -1.536e+00;
2177            }
2178            if( w==58 )
2179            {
2180                r = -1.600e+00;
2181            }
2182            if( w==57 )
2183            {
2184                r = -1.666e+00;
2185            }
2186            if( w==56 )
2187            {
2188                r = -1.735e+00;
2189            }
2190            if( w==55 )
2191            {
2192                r = -1.805e+00;
2193            }
2194            if( w==54 )
2195            {
2196                r = -1.877e+00;
2197            }
2198            if( w==53 )
2199            {
2200                r = -1.951e+00;
2201            }
2202            if( w==52 )
2203            {
2204                r = -2.028e+00;
2205            }
2206            if( w==51 )
2207            {
2208                r = -2.106e+00;
2209            }
2210            if( w==50 )
2211            {
2212                r = -2.186e+00;
2213            }
2214            if( w==49 )
2215            {
2216                r = -2.269e+00;
2217            }
2218            if( w==48 )
2219            {
2220                r = -2.353e+00;
2221            }
2222            if( w==47 )
2223            {
2224                r = -2.440e+00;
2225            }
2226            if( w==46 )
2227            {
2228                r = -2.530e+00;
2229            }
2230            if( w==45 )
2231            {
2232                r = -2.621e+00;
2233            }
2234            if( w==44 )
2235            {
2236                r = -2.715e+00;
2237            }
2238            if( w==43 )
2239            {
2240                r = -2.812e+00;
2241            }
2242            if( w==42 )
2243            {
2244                r = -2.911e+00;
2245            }
2246            if( w==41 )
2247            {
2248                r = -3.012e+00;
2249            }
2250            if( w==40 )
2251            {
2252                r = -3.116e+00;
2253            }
2254            if( w==39 )
2255            {
2256                r = -3.223e+00;
2257            }
2258            if( w==38 )
2259            {
2260                r = -3.332e+00;
2261            }
2262            if( w==37 )
2263            {
2264                r = -3.445e+00;
2265            }
2266            if( w==36 )
2267            {
2268                r = -3.560e+00;
2269            }
2270            if( w==35 )
2271            {
2272                r = -3.678e+00;
2273            }
2274            if( w==34 )
2275            {
2276                r = -3.799e+00;
2277            }
2278            if( w==33 )
2279            {
2280                r = -3.924e+00;
2281            }
2282            if( w==32 )
2283            {
2284                r = -4.052e+00;
2285            }
2286            if( w==31 )
2287            {
2288                r = -4.183e+00;
2289            }
2290            if( w==30 )
2291            {
2292                r = -4.317e+00;
2293            }
2294            if( w==29 )
2295            {
2296                r = -4.456e+00;
2297            }
2298            if( w==28 )
2299            {
2300                r = -4.597e+00;
2301            }
2302            if( w==27 )
2303            {
2304                r = -4.743e+00;
2305            }
2306            if( w==26 )
2307            {
2308                r = -4.893e+00;
2309            }
2310            if( w==25 )
2311            {
2312                r = -5.047e+00;
2313            }
2314            if( w==24 )
2315            {
2316                r = -5.204e+00;
2317            }
2318            if( w==23 )
2319            {
2320                r = -5.367e+00;
2321            }
2322            if( w==22 )
2323            {
2324                r = -5.534e+00;
2325            }
2326            if( w==21 )
2327            {
2328                r = -5.706e+00;
2329            }
2330            if( w==20 )
2331            {
2332                r = -5.884e+00;
2333            }
2334            if( w==19 )
2335            {
2336                r = -6.066e+00;
2337            }
2338            if( w==18 )
2339            {
2340                r = -6.254e+00;
2341            }
2342            if( w==17 )
2343            {
2344                r = -6.451e+00;
2345            }
2346            if( w==16 )
2347            {
2348                r = -6.654e+00;
2349            }
2350            if( w==15 )
2351            {
2352                r = -6.864e+00;
2353            }
2354            if( w==14 )
2355            {
2356                r = -7.083e+00;
2357            }
2358            if( w==13 )
2359            {
2360                r = -7.306e+00;
2361            }
2362            if( w==12 )
2363            {
2364                r = -7.535e+00;
2365            }
2366            if( w==11 )
2367            {
2368                r = -7.776e+00;
2369            }
2370            if( w==10 )
2371            {
2372                r = -8.022e+00;
2373            }
2374            if( w==9 )
2375            {
2376                r = -8.287e+00;
2377            }
2378            if( w==8 )
2379            {
2380                r = -8.565e+00;
2381            }
2382            if( w==7 )
2383            {
2384                r = -8.839e+00;
2385            }
2386            if( w==6 )
2387            {
2388                r = -9.144e+00;
2389            }
2390            if( w==5 )
2391            {
2392                r = -9.481e+00;
2393            }
2394            if( w==4 )
2395            {
2396                r = -9.838e+00;
2397            }
2398            if( w==3 )
2399            {
2400                r = -1.017e+01;
2401            }
2402            if( w==2 )
2403            {
2404                r = -1.068e+01;
2405            }
2406            if( w==1 )
2407            {
2408                r = -1.109e+01;
2409            }
2410            if( w<=0 )
2411            {
2412                r = -1.178e+01;
2413            }
2414            result = r;
2415            return result;
2416        }
2417
2418
2419        /*************************************************************************
2420        Tail(S, 18)
2421        *************************************************************************/
2422        private static double w18(double s)
2423        {
2424            double result = 0;
2425            int w = 0;
2426            double r = 0;
2427
2428            w = (int)Math.Round(-(2.296193e+01*s)+8.550000e+01);
2429            if( w>=85 )
2430            {
2431                r = -6.931e-01;
2432            }
2433            if( w==84 )
2434            {
2435                r = -7.276e-01;
2436            }
2437            if( w==83 )
2438            {
2439                r = -7.633e-01;
2440            }
2441            if( w==82 )
2442            {
2443                r = -8.001e-01;
2444            }
2445            if( w==81 )
2446            {
2447                r = -8.381e-01;
2448            }
2449            if( w==80 )
2450            {
2451                r = -8.774e-01;
2452            }
2453            if( w==79 )
2454            {
2455                r = -9.179e-01;
2456            }
2457            if( w==78 )
2458            {
2459                r = -9.597e-01;
2460            }
2461            if( w==77 )
2462            {
2463                r = -1.003e+00;
2464            }
2465            if( w==76 )
2466            {
2467                r = -1.047e+00;
2468            }
2469            if( w==75 )
2470            {
2471                r = -1.093e+00;
2472            }
2473            if( w==74 )
2474            {
2475                r = -1.140e+00;
2476            }
2477            if( w==73 )
2478            {
2479                r = -1.188e+00;
2480            }
2481            if( w==72 )
2482            {
2483                r = -1.238e+00;
2484            }
2485            if( w==71 )
2486            {
2487                r = -1.289e+00;
2488            }
2489            if( w==70 )
2490            {
2491                r = -1.342e+00;
2492            }
2493            if( w==69 )
2494            {
2495                r = -1.396e+00;
2496            }
2497            if( w==68 )
2498            {
2499                r = -1.452e+00;
2500            }
2501            if( w==67 )
2502            {
2503                r = -1.509e+00;
2504            }
2505            if( w==66 )
2506            {
2507                r = -1.568e+00;
2508            }
2509            if( w==65 )
2510            {
2511                r = -1.628e+00;
2512            }
2513            if( w==64 )
2514            {
2515                r = -1.690e+00;
2516            }
2517            if( w==63 )
2518            {
2519                r = -1.753e+00;
2520            }
2521            if( w==62 )
2522            {
2523                r = -1.818e+00;
2524            }
2525            if( w==61 )
2526            {
2527                r = -1.885e+00;
2528            }
2529            if( w==60 )
2530            {
2531                r = -1.953e+00;
2532            }
2533            if( w==59 )
2534            {
2535                r = -2.023e+00;
2536            }
2537            if( w==58 )
2538            {
2539                r = -2.095e+00;
2540            }
2541            if( w==57 )
2542            {
2543                r = -2.168e+00;
2544            }
2545            if( w==56 )
2546            {
2547                r = -2.244e+00;
2548            }
2549            if( w==55 )
2550            {
2551                r = -2.321e+00;
2552            }
2553            if( w==54 )
2554            {
2555                r = -2.400e+00;
2556            }
2557            if( w==53 )
2558            {
2559                r = -2.481e+00;
2560            }
2561            if( w==52 )
2562            {
2563                r = -2.564e+00;
2564            }
2565            if( w==51 )
2566            {
2567                r = -2.648e+00;
2568            }
2569            if( w==50 )
2570            {
2571                r = -2.735e+00;
2572            }
2573            if( w==49 )
2574            {
2575                r = -2.824e+00;
2576            }
2577            if( w==48 )
2578            {
2579                r = -2.915e+00;
2580            }
2581            if( w==47 )
2582            {
2583                r = -3.008e+00;
2584            }
2585            if( w==46 )
2586            {
2587                r = -3.104e+00;
2588            }
2589            if( w==45 )
2590            {
2591                r = -3.201e+00;
2592            }
2593            if( w==44 )
2594            {
2595                r = -3.301e+00;
2596            }
2597            if( w==43 )
2598            {
2599                r = -3.403e+00;
2600            }
2601            if( w==42 )
2602            {
2603                r = -3.508e+00;
2604            }
2605            if( w==41 )
2606            {
2607                r = -3.615e+00;
2608            }
2609            if( w==40 )
2610            {
2611                r = -3.724e+00;
2612            }
2613            if( w==39 )
2614            {
2615                r = -3.836e+00;
2616            }
2617            if( w==38 )
2618            {
2619                r = -3.950e+00;
2620            }
2621            if( w==37 )
2622            {
2623                r = -4.068e+00;
2624            }
2625            if( w==36 )
2626            {
2627                r = -4.188e+00;
2628            }
2629            if( w==35 )
2630            {
2631                r = -4.311e+00;
2632            }
2633            if( w==34 )
2634            {
2635                r = -4.437e+00;
2636            }
2637            if( w==33 )
2638            {
2639                r = -4.565e+00;
2640            }
2641            if( w==32 )
2642            {
2643                r = -4.698e+00;
2644            }
2645            if( w==31 )
2646            {
2647                r = -4.833e+00;
2648            }
2649            if( w==30 )
2650            {
2651                r = -4.971e+00;
2652            }
2653            if( w==29 )
2654            {
2655                r = -5.113e+00;
2656            }
2657            if( w==28 )
2658            {
2659                r = -5.258e+00;
2660            }
2661            if( w==27 )
2662            {
2663                r = -5.408e+00;
2664            }
2665            if( w==26 )
2666            {
2667                r = -5.561e+00;
2668            }
2669            if( w==25 )
2670            {
2671                r = -5.717e+00;
2672            }
2673            if( w==24 )
2674            {
2675                r = -5.878e+00;
2676            }
2677            if( w==23 )
2678            {
2679                r = -6.044e+00;
2680            }
2681            if( w==22 )
2682            {
2683                r = -6.213e+00;
2684            }
2685            if( w==21 )
2686            {
2687                r = -6.388e+00;
2688            }
2689            if( w==20 )
2690            {
2691                r = -6.569e+00;
2692            }
2693            if( w==19 )
2694            {
2695                r = -6.753e+00;
2696            }
2697            if( w==18 )
2698            {
2699                r = -6.943e+00;
2700            }
2701            if( w==17 )
2702            {
2703                r = -7.144e+00;
2704            }
2705            if( w==16 )
2706            {
2707                r = -7.347e+00;
2708            }
2709            if( w==15 )
2710            {
2711                r = -7.557e+00;
2712            }
2713            if( w==14 )
2714            {
2715                r = -7.776e+00;
2716            }
2717            if( w==13 )
2718            {
2719                r = -7.999e+00;
2720            }
2721            if( w==12 )
2722            {
2723                r = -8.228e+00;
2724            }
2725            if( w==11 )
2726            {
2727                r = -8.469e+00;
2728            }
2729            if( w==10 )
2730            {
2731                r = -8.715e+00;
2732            }
2733            if( w==9 )
2734            {
2735                r = -8.980e+00;
2736            }
2737            if( w==8 )
2738            {
2739                r = -9.258e+00;
2740            }
2741            if( w==7 )
2742            {
2743                r = -9.532e+00;
2744            }
2745            if( w==6 )
2746            {
2747                r = -9.838e+00;
2748            }
2749            if( w==5 )
2750            {
2751                r = -1.017e+01;
2752            }
2753            if( w==4 )
2754            {
2755                r = -1.053e+01;
2756            }
2757            if( w==3 )
2758            {
2759                r = -1.087e+01;
2760            }
2761            if( w==2 )
2762            {
2763                r = -1.138e+01;
2764            }
2765            if( w==1 )
2766            {
2767                r = -1.178e+01;
2768            }
2769            if( w<=0 )
2770            {
2771                r = -1.248e+01;
2772            }
2773            result = r;
2774            return result;
2775        }
2776
2777
2778        /*************************************************************************
2779        Tail(S, 19)
2780        *************************************************************************/
2781        private static double w19(double s)
2782        {
2783            double result = 0;
2784            int w = 0;
2785            double r = 0;
2786
2787            w = (int)Math.Round(-(2.484955e+01*s)+9.500000e+01);
2788            if( w>=95 )
2789            {
2790                r = -6.776e-01;
2791            }
2792            if( w==94 )
2793            {
2794                r = -7.089e-01;
2795            }
2796            if( w==93 )
2797            {
2798                r = -7.413e-01;
2799            }
2800            if( w==92 )
2801            {
2802                r = -7.747e-01;
2803            }
2804            if( w==91 )
2805            {
2806                r = -8.090e-01;
2807            }
2808            if( w==90 )
2809            {
2810                r = -8.445e-01;
2811            }
2812            if( w==89 )
2813            {
2814                r = -8.809e-01;
2815            }
2816            if( w==88 )
2817            {
2818                r = -9.185e-01;
2819            }
2820            if( w==87 )
2821            {
2822                r = -9.571e-01;
2823            }
2824            if( w==86 )
2825            {
2826                r = -9.968e-01;
2827            }
2828            if( w==85 )
2829            {
2830                r = -1.038e+00;
2831            }
2832            if( w==84 )
2833            {
2834                r = -1.080e+00;
2835            }
2836            if( w==83 )
2837            {
2838                r = -1.123e+00;
2839            }
2840            if( w==82 )
2841            {
2842                r = -1.167e+00;
2843            }
2844            if( w==81 )
2845            {
2846                r = -1.213e+00;
2847            }
2848            if( w==80 )
2849            {
2850                r = -1.259e+00;
2851            }
2852            if( w==79 )
2853            {
2854                r = -1.307e+00;
2855            }
2856            if( w==78 )
2857            {
2858                r = -1.356e+00;
2859            }
2860            if( w==77 )
2861            {
2862                r = -1.407e+00;
2863            }
2864            if( w==76 )
2865            {
2866                r = -1.458e+00;
2867            }
2868            if( w==75 )
2869            {
2870                r = -1.511e+00;
2871            }
2872            if( w==74 )
2873            {
2874                r = -1.565e+00;
2875            }
2876            if( w==73 )
2877            {
2878                r = -1.621e+00;
2879            }
2880            if( w==72 )
2881            {
2882                r = -1.678e+00;
2883            }
2884            if( w==71 )
2885            {
2886                r = -1.736e+00;
2887            }
2888            if( w==70 )
2889            {
2890                r = -1.796e+00;
2891            }
2892            if( w==69 )
2893            {
2894                r = -1.857e+00;
2895            }
2896            if( w==68 )
2897            {
2898                r = -1.919e+00;
2899            }
2900            if( w==67 )
2901            {
2902                r = -1.983e+00;
2903            }
2904            if( w==66 )
2905            {
2906                r = -2.048e+00;
2907            }
2908            if( w==65 )
2909            {
2910                r = -2.115e+00;
2911            }
2912            if( w==64 )
2913            {
2914                r = -2.183e+00;
2915            }
2916            if( w==63 )
2917            {
2918                r = -2.253e+00;
2919            }
2920            if( w==62 )
2921            {
2922                r = -2.325e+00;
2923            }
2924            if( w==61 )
2925            {
2926                r = -2.398e+00;
2927            }
2928            if( w==60 )
2929            {
2930                r = -2.472e+00;
2931            }
2932            if( w==59 )
2933            {
2934                r = -2.548e+00;
2935            }
2936            if( w==58 )
2937            {
2938                r = -2.626e+00;
2939            }
2940            if( w==57 )
2941            {
2942                r = -2.706e+00;
2943            }
2944            if( w==56 )
2945            {
2946                r = -2.787e+00;
2947            }
2948            if( w==55 )
2949            {
2950                r = -2.870e+00;
2951            }
2952            if( w==54 )
2953            {
2954                r = -2.955e+00;
2955            }
2956            if( w==53 )
2957            {
2958                r = -3.042e+00;
2959            }
2960            if( w==52 )
2961            {
2962                r = -3.130e+00;
2963            }
2964            if( w==51 )
2965            {
2966                r = -3.220e+00;
2967            }
2968            if( w==50 )
2969            {
2970                r = -3.313e+00;
2971            }
2972            if( w==49 )
2973            {
2974                r = -3.407e+00;
2975            }
2976            if( w==48 )
2977            {
2978                r = -3.503e+00;
2979            }
2980            if( w==47 )
2981            {
2982                r = -3.601e+00;
2983            }
2984            if( w==46 )
2985            {
2986                r = -3.702e+00;
2987            }
2988            if( w==45 )
2989            {
2990                r = -3.804e+00;
2991            }
2992            if( w==44 )
2993            {
2994                r = -3.909e+00;
2995            }
2996            if( w==43 )
2997            {
2998                r = -4.015e+00;
2999            }
3000            if( w==42 )
3001            {
3002                r = -4.125e+00;
3003            }
3004            if( w==41 )
3005            {
3006                r = -4.236e+00;
3007            }
3008            if( w==40 )
3009            {
3010                r = -4.350e+00;
3011            }
3012            if( w==39 )
3013            {
3014                r = -4.466e+00;
3015            }
3016            if( w==38 )
3017            {
3018                r = -4.585e+00;
3019            }
3020            if( w==37 )
3021            {
3022                r = -4.706e+00;
3023            }
3024            if( w==36 )
3025            {
3026                r = -4.830e+00;
3027            }
3028            if( w==35 )
3029            {
3030                r = -4.957e+00;
3031            }
3032            if( w==34 )
3033            {
3034                r = -5.086e+00;
3035            }
3036            if( w==33 )
3037            {
3038                r = -5.219e+00;
3039            }
3040            if( w==32 )
3041            {
3042                r = -5.355e+00;
3043            }
3044            if( w==31 )
3045            {
3046                r = -5.493e+00;
3047            }
3048            if( w==30 )
3049            {
3050                r = -5.634e+00;
3051            }
3052            if( w==29 )
3053            {
3054                r = -5.780e+00;
3055            }
3056            if( w==28 )
3057            {
3058                r = -5.928e+00;
3059            }
3060            if( w==27 )
3061            {
3062                r = -6.080e+00;
3063            }
3064            if( w==26 )
3065            {
3066                r = -6.235e+00;
3067            }
3068            if( w==25 )
3069            {
3070                r = -6.394e+00;
3071            }
3072            if( w==24 )
3073            {
3074                r = -6.558e+00;
3075            }
3076            if( w==23 )
3077            {
3078                r = -6.726e+00;
3079            }
3080            if( w==22 )
3081            {
3082                r = -6.897e+00;
3083            }
3084            if( w==21 )
3085            {
3086                r = -7.074e+00;
3087            }
3088            if( w==20 )
3089            {
3090                r = -7.256e+00;
3091            }
3092            if( w==19 )
3093            {
3094                r = -7.443e+00;
3095            }
3096            if( w==18 )
3097            {
3098                r = -7.636e+00;
3099            }
3100            if( w==17 )
3101            {
3102                r = -7.837e+00;
3103            }
3104            if( w==16 )
3105            {
3106                r = -8.040e+00;
3107            }
3108            if( w==15 )
3109            {
3110                r = -8.250e+00;
3111            }
3112            if( w==14 )
3113            {
3114                r = -8.469e+00;
3115            }
3116            if( w==13 )
3117            {
3118                r = -8.692e+00;
3119            }
3120            if( w==12 )
3121            {
3122                r = -8.921e+00;
3123            }
3124            if( w==11 )
3125            {
3126                r = -9.162e+00;
3127            }
3128            if( w==10 )
3129            {
3130                r = -9.409e+00;
3131            }
3132            if( w==9 )
3133            {
3134                r = -9.673e+00;
3135            }
3136            if( w==8 )
3137            {
3138                r = -9.951e+00;
3139            }
3140            if( w==7 )
3141            {
3142                r = -1.023e+01;
3143            }
3144            if( w==6 )
3145            {
3146                r = -1.053e+01;
3147            }
3148            if( w==5 )
3149            {
3150                r = -1.087e+01;
3151            }
3152            if( w==4 )
3153            {
3154                r = -1.122e+01;
3155            }
3156            if( w==3 )
3157            {
3158                r = -1.156e+01;
3159            }
3160            if( w==2 )
3161            {
3162                r = -1.207e+01;
3163            }
3164            if( w==1 )
3165            {
3166                r = -1.248e+01;
3167            }
3168            if( w<=0 )
3169            {
3170                r = -1.317e+01;
3171            }
3172            result = r;
3173            return result;
3174        }
3175
3176
3177        /*************************************************************************
3178        Tail(S, 20)
3179        *************************************************************************/
3180        private static double w20(double s)
3181        {
3182            double result = 0;
3183            int w = 0;
3184            double r = 0;
3185
3186            w = (int)Math.Round(-(2.678619e+01*s)+1.050000e+02);
3187            if( w>=105 )
3188            {
3189                r = -6.787e-01;
3190            }
3191            if( w==104 )
3192            {
3193                r = -7.078e-01;
3194            }
3195            if( w==103 )
3196            {
3197                r = -7.378e-01;
3198            }
3199            if( w==102 )
3200            {
3201                r = -7.686e-01;
3202            }
3203            if( w==101 )
3204            {
3205                r = -8.004e-01;
3206            }
3207            if( w==100 )
3208            {
3209                r = -8.330e-01;
3210            }
3211            if( w==99 )
3212            {
3213                r = -8.665e-01;
3214            }
3215            if( w==98 )
3216            {
3217                r = -9.010e-01;
3218            }
3219            if( w==97 )
3220            {
3221                r = -9.363e-01;
3222            }
3223            if( w==96 )
3224            {
3225                r = -9.726e-01;
3226            }
3227            if( w==95 )
3228            {
3229                r = -1.010e+00;
3230            }
3231            if( w==94 )
3232            {
3233                r = -1.048e+00;
3234            }
3235            if( w==93 )
3236            {
3237                r = -1.087e+00;
3238            }
3239            if( w==92 )
3240            {
3241                r = -1.128e+00;
3242            }
3243            if( w==91 )
3244            {
3245                r = -1.169e+00;
3246            }
3247            if( w==90 )
3248            {
3249                r = -1.211e+00;
3250            }
3251            if( w==89 )
3252            {
3253                r = -1.254e+00;
3254            }
3255            if( w==88 )
3256            {
3257                r = -1.299e+00;
3258            }
3259            if( w==87 )
3260            {
3261                r = -1.344e+00;
3262            }
3263            if( w==86 )
3264            {
3265                r = -1.390e+00;
3266            }
3267            if( w==85 )
3268            {
3269                r = -1.438e+00;
3270            }
3271            if( w==84 )
3272            {
3273                r = -1.486e+00;
3274            }
3275            if( w==83 )
3276            {
3277                r = -1.536e+00;
3278            }
3279            if( w==82 )
3280            {
3281                r = -1.587e+00;
3282            }
3283            if( w==81 )
3284            {
3285                r = -1.639e+00;
3286            }
3287            if( w==80 )
3288            {
3289                r = -1.692e+00;
3290            }
3291            if( w==79 )
3292            {
3293                r = -1.746e+00;
3294            }
3295            if( w==78 )
3296            {
3297                r = -1.802e+00;
3298            }
3299            if( w==77 )
3300            {
3301                r = -1.859e+00;
3302            }
3303            if( w==76 )
3304            {
3305                r = -1.916e+00;
3306            }
3307            if( w==75 )
3308            {
3309                r = -1.976e+00;
3310            }
3311            if( w==74 )
3312            {
3313                r = -2.036e+00;
3314            }
3315            if( w==73 )
3316            {
3317                r = -2.098e+00;
3318            }
3319            if( w==72 )
3320            {
3321                r = -2.161e+00;
3322            }
3323            if( w==71 )
3324            {
3325                r = -2.225e+00;
3326            }
3327            if( w==70 )
3328            {
3329                r = -2.290e+00;
3330            }
3331            if( w==69 )
3332            {
3333                r = -2.357e+00;
3334            }
3335            if( w==68 )
3336            {
3337                r = -2.426e+00;
3338            }
3339            if( w==67 )
3340            {
3341                r = -2.495e+00;
3342            }
3343            if( w==66 )
3344            {
3345                r = -2.566e+00;
3346            }
3347            if( w==65 )
3348            {
3349                r = -2.639e+00;
3350            }
3351            if( w==64 )
3352            {
3353                r = -2.713e+00;
3354            }
3355            if( w==63 )
3356            {
3357                r = -2.788e+00;
3358            }
3359            if( w==62 )
3360            {
3361                r = -2.865e+00;
3362            }
3363            if( w==61 )
3364            {
3365                r = -2.943e+00;
3366            }
3367            if( w==60 )
3368            {
3369                r = -3.023e+00;
3370            }
3371            if( w==59 )
3372            {
3373                r = -3.104e+00;
3374            }
3375            if( w==58 )
3376            {
3377                r = -3.187e+00;
3378            }
3379            if( w==57 )
3380            {
3381                r = -3.272e+00;
3382            }
3383            if( w==56 )
3384            {
3385                r = -3.358e+00;
3386            }
3387            if( w==55 )
3388            {
3389                r = -3.446e+00;
3390            }
3391            if( w==54 )
3392            {
3393                r = -3.536e+00;
3394            }
3395            if( w==53 )
3396            {
3397                r = -3.627e+00;
3398            }
3399            if( w==52 )
3400            {
3401                r = -3.721e+00;
3402            }
3403            if( w==51 )
3404            {
3405                r = -3.815e+00;
3406            }
3407            if( w==50 )
3408            {
3409                r = -3.912e+00;
3410            }
3411            if( w==49 )
3412            {
3413                r = -4.011e+00;
3414            }
3415            if( w==48 )
3416            {
3417                r = -4.111e+00;
3418            }
3419            if( w==47 )
3420            {
3421                r = -4.214e+00;
3422            }
3423            if( w==46 )
3424            {
3425                r = -4.318e+00;
3426            }
3427            if( w==45 )
3428            {
3429                r = -4.425e+00;
3430            }
3431            if( w==44 )
3432            {
3433                r = -4.534e+00;
3434            }
3435            if( w==43 )
3436            {
3437                r = -4.644e+00;
3438            }
3439            if( w==42 )
3440            {
3441                r = -4.757e+00;
3442            }
3443            if( w==41 )
3444            {
3445                r = -4.872e+00;
3446            }
3447            if( w==40 )
3448            {
3449                r = -4.990e+00;
3450            }
3451            if( w==39 )
3452            {
3453                r = -5.109e+00;
3454            }
3455            if( w==38 )
3456            {
3457                r = -5.232e+00;
3458            }
3459            if( w==37 )
3460            {
3461                r = -5.356e+00;
3462            }
3463            if( w==36 )
3464            {
3465                r = -5.484e+00;
3466            }
3467            if( w==35 )
3468            {
3469                r = -5.614e+00;
3470            }
3471            if( w==34 )
3472            {
3473                r = -5.746e+00;
3474            }
3475            if( w==33 )
3476            {
3477                r = -5.882e+00;
3478            }
3479            if( w==32 )
3480            {
3481                r = -6.020e+00;
3482            }
3483            if( w==31 )
3484            {
3485                r = -6.161e+00;
3486            }
3487            if( w==30 )
3488            {
3489                r = -6.305e+00;
3490            }
3491            if( w==29 )
3492            {
3493                r = -6.453e+00;
3494            }
3495            if( w==28 )
3496            {
3497                r = -6.603e+00;
3498            }
3499            if( w==27 )
3500            {
3501                r = -6.757e+00;
3502            }
3503            if( w==26 )
3504            {
3505                r = -6.915e+00;
3506            }
3507            if( w==25 )
3508            {
3509                r = -7.076e+00;
3510            }
3511            if( w==24 )
3512            {
3513                r = -7.242e+00;
3514            }
3515            if( w==23 )
3516            {
3517                r = -7.411e+00;
3518            }
3519            if( w==22 )
3520            {
3521                r = -7.584e+00;
3522            }
3523            if( w==21 )
3524            {
3525                r = -7.763e+00;
3526            }
3527            if( w==20 )
3528            {
3529                r = -7.947e+00;
3530            }
3531            if( w==19 )
3532            {
3533                r = -8.136e+00;
3534            }
3535            if( w==18 )
3536            {
3537                r = -8.330e+00;
3538            }
3539            if( w==17 )
3540            {
3541                r = -8.530e+00;
3542            }
3543            if( w==16 )
3544            {
3545                r = -8.733e+00;
3546            }
3547            if( w==15 )
3548            {
3549                r = -8.943e+00;
3550            }
3551            if( w==14 )
3552            {
3553                r = -9.162e+00;
3554            }
3555            if( w==13 )
3556            {
3557                r = -9.386e+00;
3558            }
3559            if( w==12 )
3560            {
3561                r = -9.614e+00;
3562            }
3563            if( w==11 )
3564            {
3565                r = -9.856e+00;
3566            }
3567            if( w==10 )
3568            {
3569                r = -1.010e+01;
3570            }
3571            if( w==9 )
3572            {
3573                r = -1.037e+01;
3574            }
3575            if( w==8 )
3576            {
3577                r = -1.064e+01;
3578            }
3579            if( w==7 )
3580            {
3581                r = -1.092e+01;
3582            }
3583            if( w==6 )
3584            {
3585                r = -1.122e+01;
3586            }
3587            if( w==5 )
3588            {
3589                r = -1.156e+01;
3590            }
3591            if( w==4 )
3592            {
3593                r = -1.192e+01;
3594            }
3595            if( w==3 )
3596            {
3597                r = -1.225e+01;
3598            }
3599            if( w==2 )
3600            {
3601                r = -1.276e+01;
3602            }
3603            if( w==1 )
3604            {
3605                r = -1.317e+01;
3606            }
3607            if( w<=0 )
3608            {
3609                r = -1.386e+01;
3610            }
3611            result = r;
3612            return result;
3613        }
3614
3615
3616        /*************************************************************************
3617        Tail(S, 21)
3618        *************************************************************************/
3619        private static double w21(double s)
3620        {
3621            double result = 0;
3622            int w = 0;
3623            double r = 0;
3624
3625            w = (int)Math.Round(-(2.877064e+01*s)+1.155000e+02);
3626            if( w>=115 )
3627            {
3628                r = -6.931e-01;
3629            }
3630            if( w==114 )
3631            {
3632                r = -7.207e-01;
3633            }
3634            if( w==113 )
3635            {
3636                r = -7.489e-01;
3637            }
3638            if( w==112 )
3639            {
3640                r = -7.779e-01;
3641            }
3642            if( w==111 )
3643            {
3644                r = -8.077e-01;
3645            }
3646            if( w==110 )
3647            {
3648                r = -8.383e-01;
3649            }
3650            if( w==109 )
3651            {
3652                r = -8.697e-01;
3653            }
3654            if( w==108 )
3655            {
3656                r = -9.018e-01;
3657            }
3658            if( w==107 )
3659            {
3660                r = -9.348e-01;
3661            }
3662            if( w==106 )
3663            {
3664                r = -9.685e-01;
3665            }
3666            if( w==105 )
3667            {
3668                r = -1.003e+00;
3669            }
3670            if( w==104 )
3671            {
3672                r = -1.039e+00;
3673            }
3674            if( w==103 )
3675            {
3676                r = -1.075e+00;
3677            }
3678            if( w==102 )
3679            {
3680                r = -1.112e+00;
3681            }
3682            if( w==101 )
3683            {
3684                r = -1.150e+00;
3685            }
3686            if( w==100 )
3687            {
3688                r = -1.189e+00;
3689            }
3690            if( w==99 )
3691            {
3692                r = -1.229e+00;
3693            }
3694            if( w==98 )
3695            {
3696                r = -1.269e+00;
3697            }
3698            if( w==97 )
3699            {
3700                r = -1.311e+00;
3701            }
3702            if( w==96 )
3703            {
3704                r = -1.353e+00;
3705            }
3706            if( w==95 )
3707            {
3708                r = -1.397e+00;
3709            }
3710            if( w==94 )
3711            {
3712                r = -1.441e+00;
3713            }
3714            if( w==93 )
3715            {
3716                r = -1.486e+00;
3717            }
3718            if( w==92 )
3719            {
3720                r = -1.533e+00;
3721            }
3722            if( w==91 )
3723            {
3724                r = -1.580e+00;
3725            }
3726            if( w==90 )
3727            {
3728                r = -1.628e+00;
3729            }
3730            if( w==89 )
3731            {
3732                r = -1.677e+00;
3733            }
3734            if( w==88 )
3735            {
3736                r = -1.728e+00;
3737            }
3738            if( w==87 )
3739            {
3740                r = -1.779e+00;
3741            }
3742            if( w==86 )
3743            {
3744                r = -1.831e+00;
3745            }
3746            if( w==85 )
3747            {
3748                r = -1.884e+00;
3749            }
3750            if( w==84 )
3751            {
3752                r = -1.939e+00;
3753            }
3754            if( w==83 )
3755            {
3756                r = -1.994e+00;
3757            }
3758            if( w==82 )
3759            {
3760                r = -2.051e+00;
3761            }
3762            if( w==81 )
3763            {
3764                r = -2.108e+00;
3765            }
3766            if( w==80 )
3767            {
3768                r = -2.167e+00;
3769            }
3770            if( w==79 )
3771            {
3772                r = -2.227e+00;
3773            }
3774            if( w==78 )
3775            {
3776                r = -2.288e+00;
3777            }
3778            if( w==77 )
3779            {
3780                r = -2.350e+00;
3781            }
3782            if( w==76 )
3783            {
3784                r = -2.414e+00;
3785            }
3786            if( w==75 )
3787            {
3788                r = -2.478e+00;
3789            }
3790            if( w==74 )
3791            {
3792                r = -2.544e+00;
3793            }
3794            if( w==73 )
3795            {
3796                r = -2.611e+00;
3797            }
3798            if( w==72 )
3799            {
3800                r = -2.679e+00;
3801            }
3802            if( w==71 )
3803            {
3804                r = -2.748e+00;
3805            }
3806            if( w==70 )
3807            {
3808                r = -2.819e+00;
3809            }
3810            if( w==69 )
3811            {
3812                r = -2.891e+00;
3813            }
3814            if( w==68 )
3815            {
3816                r = -2.964e+00;
3817            }
3818            if( w==67 )
3819            {
3820                r = -3.039e+00;
3821            }
3822            if( w==66 )
3823            {
3824                r = -3.115e+00;
3825            }
3826            if( w==65 )
3827            {
3828                r = -3.192e+00;
3829            }
3830            if( w==64 )
3831            {
3832                r = -3.270e+00;
3833            }
3834            if( w==63 )
3835            {
3836                r = -3.350e+00;
3837            }
3838            if( w==62 )
3839            {
3840                r = -3.432e+00;
3841            }
3842            if( w==61 )
3843            {
3844                r = -3.515e+00;
3845            }
3846            if( w==60 )
3847            {
3848                r = -3.599e+00;
3849            }
3850            if( w==59 )
3851            {
3852                r = -3.685e+00;
3853            }
3854            if( w==58 )
3855            {
3856                r = -3.772e+00;
3857            }
3858            if( w==57 )
3859            {
3860                r = -3.861e+00;
3861            }
3862            if( w==56 )
3863            {
3864                r = -3.952e+00;
3865            }
3866            if( w==55 )
3867            {
3868                r = -4.044e+00;
3869            }
3870            if( w==54 )
3871            {
3872                r = -4.138e+00;
3873            }
3874            if( w==53 )
3875            {
3876                r = -4.233e+00;
3877            }
3878            if( w==52 )
3879            {
3880                r = -4.330e+00;
3881            }
3882            if( w==51 )
3883            {
3884                r = -4.429e+00;
3885            }
3886            if( w==50 )
3887            {
3888                r = -4.530e+00;
3889            }
3890            if( w==49 )
3891            {
3892                r = -4.632e+00;
3893            }
3894            if( w==48 )
3895            {
3896                r = -4.736e+00;
3897            }
3898            if( w==47 )
3899            {
3900                r = -4.842e+00;
3901            }
3902            if( w==46 )
3903            {
3904                r = -4.950e+00;
3905            }
3906            if( w==45 )
3907            {
3908                r = -5.060e+00;
3909            }
3910            if( w==44 )
3911            {
3912                r = -5.172e+00;
3913            }
3914            if( w==43 )
3915            {
3916                r = -5.286e+00;
3917            }
3918            if( w==42 )
3919            {
3920                r = -5.402e+00;
3921            }
3922            if( w==41 )
3923            {
3924                r = -5.520e+00;
3925            }
3926            if( w==40 )
3927            {
3928                r = -5.641e+00;
3929            }
3930            if( w==39 )
3931            {
3932                r = -5.763e+00;
3933            }
3934            if( w==38 )
3935            {
3936                r = -5.889e+00;
3937            }
3938            if( w==37 )
3939            {
3940                r = -6.016e+00;
3941            }
3942            if( w==36 )
3943            {
3944                r = -6.146e+00;
3945            }
3946            if( w==35 )
3947            {
3948                r = -6.278e+00;
3949            }
3950            if( w==34 )
3951            {
3952                r = -6.413e+00;
3953            }
3954            if( w==33 )
3955            {
3956                r = -6.551e+00;
3957            }
3958            if( w==32 )
3959            {
3960                r = -6.692e+00;
3961            }
3962            if( w==31 )
3963            {
3964                r = -6.835e+00;
3965            }
3966            if( w==30 )
3967            {
3968                r = -6.981e+00;
3969            }
3970            if( w==29 )
3971            {
3972                r = -7.131e+00;
3973            }
3974            if( w==28 )
3975            {
3976                r = -7.283e+00;
3977            }
3978            if( w==27 )
3979            {
3980                r = -7.439e+00;
3981            }
3982            if( w==26 )
3983            {
3984                r = -7.599e+00;
3985            }
3986            if( w==25 )
3987            {
3988                r = -7.762e+00;
3989            }
3990            if( w==24 )
3991            {
3992                r = -7.928e+00;
3993            }
3994            if( w==23 )
3995            {
3996                r = -8.099e+00;
3997            }
3998            if( w==22 )
3999            {
4000                r = -8.274e+00;
4001            }
4002            if( w==21 )
4003            {
4004                r = -8.454e+00;
4005            }
4006            if( w==20 )
4007            {
4008                r = -8.640e+00;
4009            }
4010            if( w==19 )
4011            {
4012                r = -8.829e+00;
4013            }
4014            if( w==18 )
4015            {
4016                r = -9.023e+00;
4017            }
4018            if( w==17 )
4019            {
4020                r = -9.223e+00;
4021            }
4022            if( w==16 )
4023            {
4024                r = -9.426e+00;
4025            }
4026            if( w==15 )
4027            {
4028                r = -9.636e+00;
4029            }
4030            if( w==14 )
4031            {
4032                r = -9.856e+00;
4033            }
4034            if( w==13 )
4035            {
4036                r = -1.008e+01;
4037            }
4038            if( w==12 )
4039            {
4040                r = -1.031e+01;
4041            }
4042            if( w==11 )
4043            {
4044                r = -1.055e+01;
4045            }
4046            if( w==10 )
4047            {
4048                r = -1.079e+01;
4049            }
4050            if( w==9 )
4051            {
4052                r = -1.106e+01;
4053            }
4054            if( w==8 )
4055            {
4056                r = -1.134e+01;
4057            }
4058            if( w==7 )
4059            {
4060                r = -1.161e+01;
4061            }
4062            if( w==6 )
4063            {
4064                r = -1.192e+01;
4065            }
4066            if( w==5 )
4067            {
4068                r = -1.225e+01;
4069            }
4070            if( w==4 )
4071            {
4072                r = -1.261e+01;
4073            }
4074            if( w==3 )
4075            {
4076                r = -1.295e+01;
4077            }
4078            if( w==2 )
4079            {
4080                r = -1.346e+01;
4081            }
4082            if( w==1 )
4083            {
4084                r = -1.386e+01;
4085            }
4086            if( w<=0 )
4087            {
4088                r = -1.456e+01;
4089            }
4090            result = r;
4091            return result;
4092        }
4093
4094
4095        /*************************************************************************
4096        Tail(S, 22)
4097        *************************************************************************/
4098        private static double w22(double s)
4099        {
4100            double result = 0;
4101            int w = 0;
4102            double r = 0;
4103
4104            w = (int)Math.Round(-(3.080179e+01*s)+1.265000e+02);
4105            if( w>=126 )
4106            {
4107                r = -6.931e-01;
4108            }
4109            if( w==125 )
4110            {
4111                r = -7.189e-01;
4112            }
4113            if( w==124 )
4114            {
4115                r = -7.452e-01;
4116            }
4117            if( w==123 )
4118            {
4119                r = -7.722e-01;
4120            }
4121            if( w==122 )
4122            {
4123                r = -7.999e-01;
4124            }
4125            if( w==121 )
4126            {
4127                r = -8.283e-01;
4128            }
4129            if( w==120 )
4130            {
4131                r = -8.573e-01;
4132            }
4133            if( w==119 )
4134            {
4135                r = -8.871e-01;
4136            }
4137            if( w==118 )
4138            {
4139                r = -9.175e-01;
4140            }
4141            if( w==117 )
4142            {
4143                r = -9.486e-01;
4144            }
4145            if( w==116 )
4146            {
4147                r = -9.805e-01;
4148            }
4149            if( w==115 )
4150            {
4151                r = -1.013e+00;
4152            }
4153            if( w==114 )
4154            {
4155                r = -1.046e+00;
4156            }
4157            if( w==113 )
4158            {
4159                r = -1.080e+00;
4160            }
4161            if( w==112 )
4162            {
4163                r = -1.115e+00;
4164            }
4165            if( w==111 )
4166            {
4167                r = -1.151e+00;
4168            }
4169            if( w==110 )
4170            {
4171                r = -1.187e+00;
4172            }
4173            if( w==109 )
4174            {
4175                r = -1.224e+00;
4176            }
4177            if( w==108 )
4178            {
4179                r = -1.262e+00;
4180            }
4181            if( w==107 )
4182            {
4183                r = -1.301e+00;
4184            }
4185            if( w==106 )
4186            {
4187                r = -1.340e+00;
4188            }
4189            if( w==105 )
4190            {
4191                r = -1.381e+00;
4192            }
4193            if( w==104 )
4194            {
4195                r = -1.422e+00;
4196            }
4197            if( w==103 )
4198            {
4199                r = -1.464e+00;
4200            }
4201            if( w==102 )
4202            {
4203                r = -1.506e+00;
4204            }
4205            if( w==101 )
4206            {
4207                r = -1.550e+00;
4208            }
4209            if( w==100 )
4210            {
4211                r = -1.594e+00;
4212            }
4213            if( w==99 )
4214            {
4215                r = -1.640e+00;
4216            }
4217            if( w==98 )
4218            {
4219                r = -1.686e+00;
4220            }
4221            if( w==97 )
4222            {
4223                r = -1.733e+00;
4224            }
4225            if( w==96 )
4226            {
4227                r = -1.781e+00;
4228            }
4229            if( w==95 )
4230            {
4231                r = -1.830e+00;
4232            }
4233            if( w==94 )
4234            {
4235                r = -1.880e+00;
4236            }
4237            if( w==93 )
4238            {
4239                r = -1.930e+00;
4240            }
4241            if( w==92 )
4242            {
4243                r = -1.982e+00;
4244            }
4245            if( w==91 )
4246            {
4247                r = -2.034e+00;
4248            }
4249            if( w==90 )
4250            {
4251                r = -2.088e+00;
4252            }
4253            if( w==89 )
4254            {
4255                r = -2.142e+00;
4256            }
4257            if( w==88 )
4258            {
4259                r = -2.198e+00;
4260            }
4261            if( w==87 )
4262            {
4263                r = -2.254e+00;
4264            }
4265            if( w==86 )
4266            {
4267                r = -2.312e+00;
4268            }
4269            if( w==85 )
4270            {
4271                r = -2.370e+00;
4272            }
4273            if( w==84 )
4274            {
4275                r = -2.429e+00;
4276            }
4277            if( w==83 )
4278            {
4279                r = -2.490e+00;
4280            }
4281            if( w==82 )
4282            {
4283                r = -2.551e+00;
4284            }
4285            if( w==81 )
4286            {
4287                r = -2.614e+00;
4288            }
4289            if( w==80 )
4290            {
4291                r = -2.677e+00;
4292            }
4293            if( w==79 )
4294            {
4295                r = -2.742e+00;
4296            }
4297            if( w==78 )
4298            {
4299                r = -2.808e+00;
4300            }
4301            if( w==77 )
4302            {
4303                r = -2.875e+00;
4304            }
4305            if( w==76 )
4306            {
4307                r = -2.943e+00;
4308            }
4309            if( w==75 )
4310            {
4311                r = -3.012e+00;
4312            }
4313            if( w==74 )
4314            {
4315                r = -3.082e+00;
4316            }
4317            if( w==73 )
4318            {
4319                r = -3.153e+00;
4320            }
4321            if( w==72 )
4322            {
4323                r = -3.226e+00;
4324            }
4325            if( w==71 )
4326            {
4327                r = -3.300e+00;
4328            }
4329            if( w==70 )
4330            {
4331                r = -3.375e+00;
4332            }
4333            if( w==69 )
4334            {
4335                r = -3.451e+00;
4336            }
4337            if( w==68 )
4338            {
4339                r = -3.529e+00;
4340            }
4341            if( w==67 )
4342            {
4343                r = -3.607e+00;
4344            }
4345            if( w==66 )
4346            {
4347                r = -3.687e+00;
4348            }
4349            if( w==65 )
4350            {
4351                r = -3.769e+00;
4352            }
4353            if( w==64 )
4354            {
4355                r = -3.851e+00;
4356            }
4357            if( w==63 )
4358            {
4359                r = -3.935e+00;
4360            }
4361            if( w==62 )
4362            {
4363                r = -4.021e+00;
4364            }
4365            if( w==61 )
4366            {
4367                r = -4.108e+00;
4368            }
4369            if( w==60 )
4370            {
4371                r = -4.196e+00;
4372            }
4373            if( w==59 )
4374            {
4375                r = -4.285e+00;
4376            }
4377            if( w==58 )
4378            {
4379                r = -4.376e+00;
4380            }
4381            if( w==57 )
4382            {
4383                r = -4.469e+00;
4384            }
4385            if( w==56 )
4386            {
4387                r = -4.563e+00;
4388            }
4389            if( w==55 )
4390            {
4391                r = -4.659e+00;
4392            }
4393            if( w==54 )
4394            {
4395                r = -4.756e+00;
4396            }
4397            if( w==53 )
4398            {
4399                r = -4.855e+00;
4400            }
4401            if( w==52 )
4402            {
4403                r = -4.955e+00;
4404            }
4405            if( w==51 )
4406            {
4407                r = -5.057e+00;
4408            }
4409            if( w==50 )
4410            {
4411                r = -5.161e+00;
4412            }
4413            if( w==49 )
4414            {
4415                r = -5.266e+00;
4416            }
4417            if( w==48 )
4418            {
4419                r = -5.374e+00;
4420            }
4421            if( w==47 )
4422            {
4423                r = -5.483e+00;
4424            }
4425            if( w==46 )
4426            {
4427                r = -5.594e+00;
4428            }
4429            if( w==45 )
4430            {
4431                r = -5.706e+00;
4432            }
4433            if( w==44 )
4434            {
4435                r = -5.821e+00;
4436            }
4437            if( w==43 )
4438            {
4439                r = -5.938e+00;
4440            }
4441            if( w==42 )
4442            {
4443                r = -6.057e+00;
4444            }
4445            if( w==41 )
4446            {
4447                r = -6.177e+00;
4448            }
4449            if( w==40 )
4450            {
4451                r = -6.300e+00;
4452            }
4453            if( w==39 )
4454            {
4455                r = -6.426e+00;
4456            }
4457            if( w==38 )
4458            {
4459                r = -6.553e+00;
4460            }
4461            if( w==37 )
4462            {
4463                r = -6.683e+00;
4464            }
4465            if( w==36 )
4466            {
4467                r = -6.815e+00;
4468            }
4469            if( w==35 )
4470            {
4471                r = -6.949e+00;
4472            }
4473            if( w==34 )
4474            {
4475                r = -7.086e+00;
4476            }
4477            if( w==33 )
4478            {
4479                r = -7.226e+00;
4480            }
4481            if( w==32 )
4482            {
4483                r = -7.368e+00;
4484            }
4485            if( w==31 )
4486            {
4487                r = -7.513e+00;
4488            }
4489            if( w==30 )
4490            {
4491                r = -7.661e+00;
4492            }
4493            if( w==29 )
4494            {
4495                r = -7.813e+00;
4496            }
4497            if( w==28 )
4498            {
4499                r = -7.966e+00;
4500            }
4501            if( w==27 )
4502            {
4503                r = -8.124e+00;
4504            }
4505            if( w==26 )
4506            {
4507                r = -8.285e+00;
4508            }
4509            if( w==25 )
4510            {
4511                r = -8.449e+00;
4512            }
4513            if( w==24 )
4514            {
4515                r = -8.617e+00;
4516            }
4517            if( w==23 )
4518            {
4519                r = -8.789e+00;
4520            }
4521            if( w==22 )
4522            {
4523                r = -8.965e+00;
4524            }
4525            if( w==21 )
4526            {
4527                r = -9.147e+00;
4528            }
4529            if( w==20 )
4530            {
4531                r = -9.333e+00;
4532            }
4533            if( w==19 )
4534            {
4535                r = -9.522e+00;
4536            }
4537            if( w==18 )
4538            {
4539                r = -9.716e+00;
4540            }
4541            if( w==17 )
4542            {
4543                r = -9.917e+00;
4544            }
4545            if( w==16 )
4546            {
4547                r = -1.012e+01;
4548            }
4549            if( w==15 )
4550            {
4551                r = -1.033e+01;
4552            }
4553            if( w==14 )
4554            {
4555                r = -1.055e+01;
4556            }
4557            if( w==13 )
4558            {
4559                r = -1.077e+01;
4560            }
4561            if( w==12 )
4562            {
4563                r = -1.100e+01;
4564            }
4565            if( w==11 )
4566            {
4567                r = -1.124e+01;
4568            }
4569            if( w==10 )
4570            {
4571                r = -1.149e+01;
4572            }
4573            if( w==9 )
4574            {
4575                r = -1.175e+01;
4576            }
4577            if( w==8 )
4578            {
4579                r = -1.203e+01;
4580            }
4581            if( w==7 )
4582            {
4583                r = -1.230e+01;
4584            }
4585            if( w==6 )
4586            {
4587                r = -1.261e+01;
4588            }
4589            if( w==5 )
4590            {
4591                r = -1.295e+01;
4592            }
4593            if( w==4 )
4594            {
4595                r = -1.330e+01;
4596            }
4597            if( w==3 )
4598            {
4599                r = -1.364e+01;
4600            }
4601            if( w==2 )
4602            {
4603                r = -1.415e+01;
4604            }
4605            if( w==1 )
4606            {
4607                r = -1.456e+01;
4608            }
4609            if( w<=0 )
4610            {
4611                r = -1.525e+01;
4612            }
4613            result = r;
4614            return result;
4615        }
4616
4617
4618        /*************************************************************************
4619        Tail(S, 23)
4620        *************************************************************************/
4621        private static double w23(double s)
4622        {
4623            double result = 0;
4624            int w = 0;
4625            double r = 0;
4626
4627            w = (int)Math.Round(-(3.287856e+01*s)+1.380000e+02);
4628            if( w>=138 )
4629            {
4630                r = -6.813e-01;
4631            }
4632            if( w==137 )
4633            {
4634                r = -7.051e-01;
4635            }
4636            if( w==136 )
4637            {
4638                r = -7.295e-01;
4639            }
4640            if( w==135 )
4641            {
4642                r = -7.544e-01;
4643            }
4644            if( w==134 )
4645            {
4646                r = -7.800e-01;
4647            }
4648            if( w==133 )
4649            {
4650                r = -8.061e-01;
4651            }
4652            if( w==132 )
4653            {
4654                r = -8.328e-01;
4655            }
4656            if( w==131 )
4657            {
4658                r = -8.601e-01;
4659            }
4660            if( w==130 )
4661            {
4662                r = -8.880e-01;
4663            }
4664            if( w==129 )
4665            {
4666                r = -9.166e-01;
4667            }
4668            if( w==128 )
4669            {
4670                r = -9.457e-01;
4671            }
4672            if( w==127 )
4673            {
4674                r = -9.755e-01;
4675            }
4676            if( w==126 )
4677            {
4678                r = -1.006e+00;
4679            }
4680            if( w==125 )
4681            {
4682                r = -1.037e+00;
4683            }
4684            if( w==124 )
4685            {
4686                r = -1.069e+00;
4687            }
4688            if( w==123 )
4689            {
4690                r = -1.101e+00;
4691            }
4692            if( w==122 )
4693            {
4694                r = -1.134e+00;
4695            }
4696            if( w==121 )
4697            {
4698                r = -1.168e+00;
4699            }
4700            if( w==120 )
4701            {
4702                r = -1.202e+00;
4703            }
4704            if( w==119 )
4705            {
4706                r = -1.237e+00;
4707            }
4708            if( w==118 )
4709            {
4710                r = -1.273e+00;
4711            }
4712            if( w==117 )
4713            {
4714                r = -1.309e+00;
4715            }
4716            if( w==116 )
4717            {
4718                r = -1.347e+00;
4719            }
4720            if( w==115 )
4721            {
4722                r = -1.384e+00;
4723            }
4724            if( w==114 )
4725            {
4726                r = -1.423e+00;
4727            }
4728            if( w==113 )
4729            {
4730                r = -1.462e+00;
4731            }
4732            if( w==112 )
4733            {
4734                r = -1.502e+00;
4735            }
4736            if( w==111 )
4737            {
4738                r = -1.543e+00;
4739            }
4740            if( w==110 )
4741            {
4742                r = -1.585e+00;
4743            }
4744            if( w==109 )
4745            {
4746                r = -1.627e+00;
4747            }
4748            if( w==108 )
4749            {
4750                r = -1.670e+00;
4751            }
4752            if( w==107 )
4753            {
4754                r = -1.714e+00;
4755            }
4756            if( w==106 )
4757            {
4758                r = -1.758e+00;
4759            }
4760            if( w==105 )
4761            {
4762                r = -1.804e+00;
4763            }
4764            if( w==104 )
4765            {
4766                r = -1.850e+00;
4767            }
4768            if( w==103 )
4769            {
4770                r = -1.897e+00;
4771            }
4772            if( w==102 )
4773            {
4774                r = -1.944e+00;
4775            }
4776            if( w==101 )
4777            {
4778                r = -1.993e+00;
4779            }
4780            if( w==100 )
4781            {
4782                r = -2.042e+00;
4783            }
4784            if( w==99 )
4785            {
4786                r = -2.093e+00;
4787            }
4788            if( w==98 )
4789            {
4790                r = -2.144e+00;
4791            }
4792            if( w==97 )
4793            {
4794                r = -2.195e+00;
4795            }
4796            if( w==96 )
4797            {
4798                r = -2.248e+00;
4799            }
4800            if( w==95 )
4801            {
4802                r = -2.302e+00;
4803            }
4804            if( w==94 )
4805            {
4806                r = -2.356e+00;
4807            }
4808            if( w==93 )
4809            {
4810                r = -2.412e+00;
4811            }
4812            if( w==92 )
4813            {
4814                r = -2.468e+00;
4815            }
4816            if( w==91 )
4817            {
4818                r = -2.525e+00;
4819            }
4820            if( w==90 )
4821            {
4822                r = -2.583e+00;
4823            }
4824            if( w==89 )
4825            {
4826                r = -2.642e+00;
4827            }
4828            if( w==88 )
4829            {
4830                r = -2.702e+00;
4831            }
4832            if( w==87 )
4833            {
4834                r = -2.763e+00;
4835            }
4836            if( w==86 )
4837            {
4838                r = -2.825e+00;
4839            }
4840            if( w==85 )
4841            {
4842                r = -2.888e+00;
4843            }
4844            if( w==84 )
4845            {
4846                r = -2.951e+00;
4847            }
4848            if( w==83 )
4849            {
4850                r = -3.016e+00;
4851            }
4852            if( w==82 )
4853            {
4854                r = -3.082e+00;
4855            }
4856            if( w==81 )
4857            {
4858                r = -3.149e+00;
4859            }
4860            if( w==80 )
4861            {
4862                r = -3.216e+00;
4863            }
4864            if( w==79 )
4865            {
4866                r = -3.285e+00;
4867            }
4868            if( w==78 )
4869            {
4870                r = -3.355e+00;
4871            }
4872            if( w==77 )
4873            {
4874                r = -3.426e+00;
4875            }
4876            if( w==76 )
4877            {
4878                r = -3.498e+00;
4879            }
4880            if( w==75 )
4881            {
4882                r = -3.571e+00;
4883            }
4884            if( w==74 )
4885            {
4886                r = -3.645e+00;
4887            }
4888            if( w==73 )
4889            {
4890                r = -3.721e+00;
4891            }
4892            if( w==72 )
4893            {
4894                r = -3.797e+00;
4895            }
4896            if( w==71 )
4897            {
4898                r = -3.875e+00;
4899            }
4900            if( w==70 )
4901            {
4902                r = -3.953e+00;
4903            }
4904            if( w==69 )
4905            {
4906                r = -4.033e+00;
4907            }
4908            if( w==68 )
4909            {
4910                r = -4.114e+00;
4911            }
4912            if( w==67 )
4913            {
4914                r = -4.197e+00;
4915            }
4916            if( w==66 )
4917            {
4918                r = -4.280e+00;
4919            }
4920            if( w==65 )
4921            {
4922                r = -4.365e+00;
4923            }
4924            if( w==64 )
4925            {
4926                r = -4.451e+00;
4927            }
4928            if( w==63 )
4929            {
4930                r = -4.539e+00;
4931            }
4932            if( w==62 )
4933            {
4934                r = -4.628e+00;
4935            }
4936            if( w==61 )
4937            {
4938                r = -4.718e+00;
4939            }
4940            if( w==60 )
4941            {
4942                r = -4.809e+00;
4943            }
4944            if( w==59 )
4945            {
4946                r = -4.902e+00;
4947            }
4948            if( w==58 )
4949            {
4950                r = -4.996e+00;
4951            }
4952            if( w==57 )
4953            {
4954                r = -5.092e+00;
4955            }
4956            if( w==56 )
4957            {
4958                r = -5.189e+00;
4959            }
4960            if( w==55 )
4961            {
4962                r = -5.287e+00;
4963            }
4964            if( w==54 )
4965            {
4966                r = -5.388e+00;
4967            }
4968            if( w==53 )
4969            {
4970                r = -5.489e+00;
4971            }
4972            if( w==52 )
4973            {
4974                r = -5.592e+00;
4975            }
4976            if( w==51 )
4977            {
4978                r = -5.697e+00;
4979            }
4980            if( w==50 )
4981            {
4982                r = -5.804e+00;
4983            }
4984            if( w==49 )
4985            {
4986                r = -5.912e+00;
4987            }
4988            if( w==48 )
4989            {
4990                r = -6.022e+00;
4991            }
4992            if( w==47 )
4993            {
4994                r = -6.133e+00;
4995            }
4996            if( w==46 )
4997            {
4998                r = -6.247e+00;
4999            }
5000            if( w==45 )
5001            {
5002                r = -6.362e+00;
5003            }
5004            if( w==44 )
5005            {
5006                r = -6.479e+00;
5007            }
5008            if( w==43 )
5009            {
5010                r = -6.598e+00;
5011            }
5012            if( w==42 )
5013            {
5014                r = -6.719e+00;
5015            }
5016            if( w==41 )
5017            {
5018                r = -6.842e+00;
5019            }
5020            if( w==40 )
5021            {
5022                r = -6.967e+00;
5023            }
5024            if( w==39 )
5025            {
5026                r = -7.094e+00;
5027            }
5028            if( w==38 )
5029            {
5030                r = -7.224e+00;
5031            }
5032            if( w==37 )
5033            {
5034                r = -7.355e+00;
5035            }
5036            if( w==36 )
5037            {
5038                r = -7.489e+00;
5039            }
5040            if( w==35 )
5041            {
5042                r = -7.625e+00;
5043            }
5044            if( w==34 )
5045            {
5046                r = -7.764e+00;
5047            }
5048            if( w==33 )
5049            {
5050                r = -7.905e+00;
5051            }
5052            if( w==32 )
5053            {
5054                r = -8.049e+00;
5055            }
5056            if( w==31 )
5057            {
5058                r = -8.196e+00;
5059            }
5060            if( w==30 )
5061            {
5062                r = -8.345e+00;
5063            }
5064            if( w==29 )
5065            {
5066                r = -8.498e+00;
5067            }
5068            if( w==28 )
5069            {
5070                r = -8.653e+00;
5071            }
5072            if( w==27 )
5073            {
5074                r = -8.811e+00;
5075            }
5076            if( w==26 )
5077            {
5078                r = -8.974e+00;
5079            }
5080            if( w==25 )
5081            {
5082                r = -9.139e+00;
5083            }
5084            if( w==24 )
5085            {
5086                r = -9.308e+00;
5087            }
5088            if( w==23 )
5089            {
5090                r = -9.481e+00;
5091            }
5092            if( w==22 )
5093            {
5094                r = -9.658e+00;
5095            }
5096            if( w==21 )
5097            {
5098                r = -9.840e+00;
5099            }
5100            if( w==20 )
5101            {
5102                r = -1.003e+01;
5103            }
5104            if( w==19 )
5105            {
5106                r = -1.022e+01;
5107            }
5108            if( w==18 )
5109            {
5110                r = -1.041e+01;
5111            }
5112            if( w==17 )
5113            {
5114                r = -1.061e+01;
5115            }
5116            if( w==16 )
5117            {
5118                r = -1.081e+01;
5119            }
5120            if( w==15 )
5121            {
5122                r = -1.102e+01;
5123            }
5124            if( w==14 )
5125            {
5126                r = -1.124e+01;
5127            }
5128            if( w==13 )
5129            {
5130                r = -1.147e+01;
5131            }
5132            if( w==12 )
5133            {
5134                r = -1.169e+01;
5135            }
5136            if( w==11 )
5137            {
5138                r = -1.194e+01;
5139            }
5140            if( w==10 )
5141            {
5142                r = -1.218e+01;
5143            }
5144            if( w==9 )
5145            {
5146                r = -1.245e+01;
5147            }
5148            if( w==8 )
5149            {
5150                r = -1.272e+01;
5151            }
5152            if( w==7 )
5153            {
5154                r = -1.300e+01;
5155            }
5156            if( w==6 )
5157            {
5158                r = -1.330e+01;
5159            }
5160            if( w==5 )
5161            {
5162                r = -1.364e+01;
5163            }
5164            if( w==4 )
5165            {
5166                r = -1.400e+01;
5167            }
5168            if( w==3 )
5169            {
5170                r = -1.433e+01;
5171            }
5172            if( w==2 )
5173            {
5174                r = -1.484e+01;
5175            }
5176            if( w==1 )
5177            {
5178                r = -1.525e+01;
5179            }
5180            if( w<=0 )
5181            {
5182                r = -1.594e+01;
5183            }
5184            result = r;
5185            return result;
5186        }
5187
5188
5189        /*************************************************************************
5190        Tail(S, 24)
5191        *************************************************************************/
5192        private static double w24(double s)
5193        {
5194            double result = 0;
5195            int w = 0;
5196            double r = 0;
5197
5198            w = (int)Math.Round(-(3.500000e+01*s)+1.500000e+02);
5199            if( w>=150 )
5200            {
5201                r = -6.820e-01;
5202            }
5203            if( w==149 )
5204            {
5205                r = -7.044e-01;
5206            }
5207            if( w==148 )
5208            {
5209                r = -7.273e-01;
5210            }
5211            if( w==147 )
5212            {
5213                r = -7.507e-01;
5214            }
5215            if( w==146 )
5216            {
5217                r = -7.746e-01;
5218            }
5219            if( w==145 )
5220            {
5221                r = -7.990e-01;
5222            }
5223            if( w==144 )
5224            {
5225                r = -8.239e-01;
5226            }
5227            if( w==143 )
5228            {
5229                r = -8.494e-01;
5230            }
5231            if( w==142 )
5232            {
5233                r = -8.754e-01;
5234            }
5235            if( w==141 )
5236            {
5237                r = -9.020e-01;
5238            }
5239            if( w==140 )
5240            {
5241                r = -9.291e-01;
5242            }
5243            if( w==139 )
5244            {
5245                r = -9.567e-01;
5246            }
5247            if( w==138 )
5248            {
5249                r = -9.849e-01;
5250            }
5251            if( w==137 )
5252            {
5253                r = -1.014e+00;
5254            }
5255            if( w==136 )
5256            {
5257                r = -1.043e+00;
5258            }
5259            if( w==135 )
5260            {
5261                r = -1.073e+00;
5262            }
5263            if( w==134 )
5264            {
5265                r = -1.103e+00;
5266            }
5267            if( w==133 )
5268            {
5269                r = -1.135e+00;
5270            }
5271            if( w==132 )
5272            {
5273                r = -1.166e+00;
5274            }
5275            if( w==131 )
5276            {
5277                r = -1.198e+00;
5278            }
5279            if( w==130 )
5280            {
5281                r = -1.231e+00;
5282            }
5283            if( w==129 )
5284            {
5285                r = -1.265e+00;
5286            }
5287            if( w==128 )
5288            {
5289                r = -1.299e+00;
5290            }
5291            if( w==127 )
5292            {
5293                r = -1.334e+00;
5294            }
5295            if( w==126 )
5296            {
5297                r = -1.369e+00;
5298            }
5299            if( w==125 )
5300            {
5301                r = -1.405e+00;
5302            }
5303            if( w==124 )
5304            {
5305                r = -1.441e+00;
5306            }
5307            if( w==123 )
5308            {
5309                r = -1.479e+00;
5310            }
5311            if( w==122 )
5312            {
5313                r = -1.517e+00;
5314            }
5315            if( w==121 )
5316            {
5317                r = -1.555e+00;
5318            }
5319            if( w==120 )
5320            {
5321                r = -1.594e+00;
5322            }
5323            if( w==119 )
5324            {
5325                r = -1.634e+00;
5326            }
5327            if( w==118 )
5328            {
5329                r = -1.675e+00;
5330            }
5331            if( w==117 )
5332            {
5333                r = -1.716e+00;
5334            }
5335            if( w==116 )
5336            {
5337                r = -1.758e+00;
5338            }
5339            if( w==115 )
5340            {
5341                r = -1.800e+00;
5342            }
5343            if( w==114 )
5344            {
5345                r = -1.844e+00;
5346            }
5347            if( w==113 )
5348            {
5349                r = -1.888e+00;
5350            }
5351            if( w==112 )
5352            {
5353                r = -1.932e+00;
5354            }
5355            if( w==111 )
5356            {
5357                r = -1.978e+00;
5358            }
5359            if( w==110 )
5360            {
5361                r = -2.024e+00;
5362            }
5363            if( w==109 )
5364            {
5365                r = -2.070e+00;
5366            }
5367            if( w==108 )
5368            {
5369                r = -2.118e+00;
5370            }
5371            if( w==107 )
5372            {
5373                r = -2.166e+00;
5374            }
5375            if( w==106 )
5376            {
5377                r = -2.215e+00;
5378            }
5379            if( w==105 )
5380            {
5381                r = -2.265e+00;
5382            }
5383            if( w==104 )
5384            {
5385                r = -2.316e+00;
5386            }
5387            if( w==103 )
5388            {
5389                r = -2.367e+00;
5390            }
5391            if( w==102 )
5392            {
5393                r = -2.419e+00;
5394            }
5395            if( w==101 )
5396            {
5397                r = -2.472e+00;
5398            }
5399            if( w==100 )
5400            {
5401                r = -2.526e+00;
5402            }
5403            if( w==99 )
5404            {
5405                r = -2.580e+00;
5406            }
5407            if( w==98 )
5408            {
5409                r = -2.636e+00;
5410            }
5411            if( w==97 )
5412            {
5413                r = -2.692e+00;
5414            }
5415            if( w==96 )
5416            {
5417                r = -2.749e+00;
5418            }
5419            if( w==95 )
5420            {
5421                r = -2.806e+00;
5422            }
5423            if( w==94 )
5424            {
5425                r = -2.865e+00;
5426            }
5427            if( w==93 )
5428            {
5429                r = -2.925e+00;
5430            }
5431            if( w==92 )
5432            {
5433                r = -2.985e+00;
5434            }
5435            if( w==91 )
5436            {
5437                r = -3.046e+00;
5438            }
5439            if( w==90 )
5440            {
5441                r = -3.108e+00;
5442            }
5443            if( w==89 )
5444            {
5445                r = -3.171e+00;
5446            }
5447            if( w==88 )
5448            {
5449                r = -3.235e+00;
5450            }
5451            if( w==87 )
5452            {
5453                r = -3.300e+00;
5454            }
5455            if( w==86 )
5456            {
5457                r = -3.365e+00;
5458            }
5459            if( w==85 )
5460            {
5461                r = -3.432e+00;
5462            }
5463            if( w==84 )
5464            {
5465                r = -3.499e+00;
5466            }
5467            if( w==83 )
5468            {
5469                r = -3.568e+00;
5470            }
5471            if( w==82 )
5472            {
5473                r = -3.637e+00;
5474            }
5475            if( w==81 )
5476            {
5477                r = -3.708e+00;
5478            }
5479            if( w==80 )
5480            {
5481                r = -3.779e+00;
5482            }
5483            if( w==79 )
5484            {
5485                r = -3.852e+00;
5486            }
5487            if( w==78 )
5488            {
5489                r = -3.925e+00;
5490            }
5491            if( w==77 )
5492            {
5493                r = -4.000e+00;
5494            }
5495            if( w==76 )
5496            {
5497                r = -4.075e+00;
5498            }
5499            if( w==75 )
5500            {
5501                r = -4.151e+00;
5502            }
5503            if( w==74 )
5504            {
5505                r = -4.229e+00;
5506            }
5507            if( w==73 )
5508            {
5509                r = -4.308e+00;
5510            }
5511            if( w==72 )
5512            {
5513                r = -4.387e+00;
5514            }
5515            if( w==71 )
5516            {
5517                r = -4.468e+00;
5518            }
5519            if( w==70 )
5520            {
5521                r = -4.550e+00;
5522            }
5523            if( w==69 )
5524            {
5525                r = -4.633e+00;
5526            }
5527            if( w==68 )
5528            {
5529                r = -4.718e+00;
5530            }
5531            if( w==67 )
5532            {
5533                r = -4.803e+00;
5534            }
5535            if( w==66 )
5536            {
5537                r = -4.890e+00;
5538            }
5539            if( w==65 )
5540            {
5541                r = -4.978e+00;
5542            }
5543            if( w==64 )
5544            {
5545                r = -5.067e+00;
5546            }
5547            if( w==63 )
5548            {
5549                r = -5.157e+00;
5550            }
5551            if( w==62 )
5552            {
5553                r = -5.249e+00;
5554            }
5555            if( w==61 )
5556            {
5557                r = -5.342e+00;
5558            }
5559            if( w==60 )
5560            {
5561                r = -5.436e+00;
5562            }
5563            if( w==59 )
5564            {
5565                r = -5.531e+00;
5566            }
5567            if( w==58 )
5568            {
5569                r = -5.628e+00;
5570            }
5571            if( w==57 )
5572            {
5573                r = -5.727e+00;
5574            }
5575            if( w==56 )
5576            {
5577                r = -5.826e+00;
5578            }
5579            if( w==55 )
5580            {
5581                r = -5.927e+00;
5582            }
5583            if( w==54 )
5584            {
5585                r = -6.030e+00;
5586            }
5587            if( w==53 )
5588            {
5589                r = -6.134e+00;
5590            }
5591            if( w==52 )
5592            {
5593                r = -6.240e+00;
5594            }
5595            if( w==51 )
5596            {
5597                r = -6.347e+00;
5598            }
5599            if( w==50 )
5600            {
5601                r = -6.456e+00;
5602            }
5603            if( w==49 )
5604            {
5605                r = -6.566e+00;
5606            }
5607            if( w==48 )
5608            {
5609                r = -6.678e+00;
5610            }
5611            if( w==47 )
5612            {
5613                r = -6.792e+00;
5614            }
5615            if( w==46 )
5616            {
5617                r = -6.907e+00;
5618            }
5619            if( w==45 )
5620            {
5621                r = -7.025e+00;
5622            }
5623            if( w==44 )
5624            {
5625                r = -7.144e+00;
5626            }
5627            if( w==43 )
5628            {
5629                r = -7.265e+00;
5630            }
5631            if( w==42 )
5632            {
5633                r = -7.387e+00;
5634            }
5635            if( w==41 )
5636            {
5637                r = -7.512e+00;
5638            }
5639            if( w==40 )
5640            {
5641                r = -7.639e+00;
5642            }
5643            if( w==39 )
5644            {
5645                r = -7.768e+00;
5646            }
5647            if( w==38 )
5648            {
5649                r = -7.899e+00;
5650            }
5651            if( w==37 )
5652            {
5653                r = -8.032e+00;
5654            }
5655            if( w==36 )
5656            {
5657                r = -8.167e+00;
5658            }
5659            if( w==35 )
5660            {
5661                r = -8.305e+00;
5662            }
5663            if( w==34 )
5664            {
5665                r = -8.445e+00;
5666            }
5667            if( w==33 )
5668            {
5669                r = -8.588e+00;
5670            }
5671            if( w==32 )
5672            {
5673                r = -8.733e+00;
5674            }
5675            if( w==31 )
5676            {
5677                r = -8.881e+00;
5678            }
5679            if( w==30 )
5680            {
5681                r = -9.031e+00;
5682            }
5683            if( w==29 )
5684            {
5685                r = -9.185e+00;
5686            }
5687            if( w==28 )
5688            {
5689                r = -9.341e+00;
5690            }
5691            if( w==27 )
5692            {
5693                r = -9.501e+00;
5694            }
5695            if( w==26 )
5696            {
5697                r = -9.664e+00;
5698            }
5699            if( w==25 )
5700            {
5701                r = -9.830e+00;
5702            }
5703            if( w==24 )
5704            {
5705                r = -1.000e+01;
5706            }
5707            if( w==23 )
5708            {
5709                r = -1.017e+01;
5710            }
5711            if( w==22 )
5712            {
5713                r = -1.035e+01;
5714            }
5715            if( w==21 )
5716            {
5717                r = -1.053e+01;
5718            }
5719            if( w==20 )
5720            {
5721                r = -1.072e+01;
5722            }
5723            if( w==19 )
5724            {
5725                r = -1.091e+01;
5726            }
5727            if( w==18 )
5728            {
5729                r = -1.110e+01;
5730            }
5731            if( w==17 )
5732            {
5733                r = -1.130e+01;
5734            }
5735            if( w==16 )
5736            {
5737                r = -1.151e+01;
5738            }
5739            if( w==15 )
5740            {
5741                r = -1.172e+01;
5742            }
5743            if( w==14 )
5744            {
5745                r = -1.194e+01;
5746            }
5747            if( w==13 )
5748            {
5749                r = -1.216e+01;
5750            }
5751            if( w==12 )
5752            {
5753                r = -1.239e+01;
5754            }
5755            if( w==11 )
5756            {
5757                r = -1.263e+01;
5758            }
5759            if( w==10 )
5760            {
5761                r = -1.287e+01;
5762            }
5763            if( w==9 )
5764            {
5765                r = -1.314e+01;
5766            }
5767            if( w==8 )
5768            {
5769                r = -1.342e+01;
5770            }
5771            if( w==7 )
5772            {
5773                r = -1.369e+01;
5774            }
5775            if( w==6 )
5776            {
5777                r = -1.400e+01;
5778            }
5779            if( w==5 )
5780            {
5781                r = -1.433e+01;
5782            }
5783            if( w==4 )
5784            {
5785                r = -1.469e+01;
5786            }
5787            if( w==3 )
5788            {
5789                r = -1.503e+01;
5790            }
5791            if( w==2 )
5792            {
5793                r = -1.554e+01;
5794            }
5795            if( w==1 )
5796            {
5797                r = -1.594e+01;
5798            }
5799            if( w<=0 )
5800            {
5801                r = -1.664e+01;
5802            }
5803            result = r;
5804            return result;
5805        }
5806
5807
5808        /*************************************************************************
5809        Tail(S, 25)
5810        *************************************************************************/
5811        private static double w25(double s)
5812        {
5813            double result = 0;
5814            double x = 0;
5815            double tj = 0;
5816            double tj1 = 0;
5817
5818            result = 0;
5819            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5820            tj = 1;
5821            tj1 = x;
5822            wcheb(x, -5.150509e+00, ref tj, ref tj1, ref result);
5823            wcheb(x, -5.695528e+00, ref tj, ref tj1, ref result);
5824            wcheb(x, -1.437637e+00, ref tj, ref tj1, ref result);
5825            wcheb(x, -2.611906e-01, ref tj, ref tj1, ref result);
5826            wcheb(x, -7.625722e-02, ref tj, ref tj1, ref result);
5827            wcheb(x, -2.579892e-02, ref tj, ref tj1, ref result);
5828            wcheb(x, -1.086876e-02, ref tj, ref tj1, ref result);
5829            wcheb(x, -2.906543e-03, ref tj, ref tj1, ref result);
5830            wcheb(x, -2.354881e-03, ref tj, ref tj1, ref result);
5831            wcheb(x, 1.007195e-04, ref tj, ref tj1, ref result);
5832            wcheb(x, -8.437327e-04, ref tj, ref tj1, ref result);
5833            return result;
5834        }
5835
5836
5837        /*************************************************************************
5838        Tail(S, 26)
5839        *************************************************************************/
5840        private static double w26(double s)
5841        {
5842            double result = 0;
5843            double x = 0;
5844            double tj = 0;
5845            double tj1 = 0;
5846
5847            result = 0;
5848            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5849            tj = 1;
5850            tj1 = x;
5851            wcheb(x, -5.117622e+00, ref tj, ref tj1, ref result);
5852            wcheb(x, -5.635159e+00, ref tj, ref tj1, ref result);
5853            wcheb(x, -1.395167e+00, ref tj, ref tj1, ref result);
5854            wcheb(x, -2.382823e-01, ref tj, ref tj1, ref result);
5855            wcheb(x, -6.531987e-02, ref tj, ref tj1, ref result);
5856            wcheb(x, -2.060112e-02, ref tj, ref tj1, ref result);
5857            wcheb(x, -8.203697e-03, ref tj, ref tj1, ref result);
5858            wcheb(x, -1.516523e-03, ref tj, ref tj1, ref result);
5859            wcheb(x, -1.431364e-03, ref tj, ref tj1, ref result);
5860            wcheb(x, 6.384553e-04, ref tj, ref tj1, ref result);
5861            wcheb(x, -3.238369e-04, ref tj, ref tj1, ref result);
5862            return result;
5863        }
5864
5865
5866        /*************************************************************************
5867        Tail(S, 27)
5868        *************************************************************************/
5869        private static double w27(double s)
5870        {
5871            double result = 0;
5872            double x = 0;
5873            double tj = 0;
5874            double tj1 = 0;
5875
5876            result = 0;
5877            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5878            tj = 1;
5879            tj1 = x;
5880            wcheb(x, -5.089731e+00, ref tj, ref tj1, ref result);
5881            wcheb(x, -5.584248e+00, ref tj, ref tj1, ref result);
5882            wcheb(x, -1.359966e+00, ref tj, ref tj1, ref result);
5883            wcheb(x, -2.203696e-01, ref tj, ref tj1, ref result);
5884            wcheb(x, -5.753344e-02, ref tj, ref tj1, ref result);
5885            wcheb(x, -1.761891e-02, ref tj, ref tj1, ref result);
5886            wcheb(x, -7.096897e-03, ref tj, ref tj1, ref result);
5887            wcheb(x, -1.419108e-03, ref tj, ref tj1, ref result);
5888            wcheb(x, -1.581214e-03, ref tj, ref tj1, ref result);
5889            wcheb(x, 3.033766e-04, ref tj, ref tj1, ref result);
5890            wcheb(x, -5.901441e-04, ref tj, ref tj1, ref result);
5891            return result;
5892        }
5893
5894
5895        /*************************************************************************
5896        Tail(S, 28)
5897        *************************************************************************/
5898        private static double w28(double s)
5899        {
5900            double result = 0;
5901            double x = 0;
5902            double tj = 0;
5903            double tj1 = 0;
5904
5905            result = 0;
5906            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5907            tj = 1;
5908            tj1 = x;
5909            wcheb(x, -5.065046e+00, ref tj, ref tj1, ref result);
5910            wcheb(x, -5.539163e+00, ref tj, ref tj1, ref result);
5911            wcheb(x, -1.328939e+00, ref tj, ref tj1, ref result);
5912            wcheb(x, -2.046376e-01, ref tj, ref tj1, ref result);
5913            wcheb(x, -5.061515e-02, ref tj, ref tj1, ref result);
5914            wcheb(x, -1.469271e-02, ref tj, ref tj1, ref result);
5915            wcheb(x, -5.711578e-03, ref tj, ref tj1, ref result);
5916            wcheb(x, -8.389153e-04, ref tj, ref tj1, ref result);
5917            wcheb(x, -1.250575e-03, ref tj, ref tj1, ref result);
5918            wcheb(x, 4.047245e-04, ref tj, ref tj1, ref result);
5919            wcheb(x, -5.128555e-04, ref tj, ref tj1, ref result);
5920            return result;
5921        }
5922
5923
5924        /*************************************************************************
5925        Tail(S, 29)
5926        *************************************************************************/
5927        private static double w29(double s)
5928        {
5929            double result = 0;
5930            double x = 0;
5931            double tj = 0;
5932            double tj1 = 0;
5933
5934            result = 0;
5935            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5936            tj = 1;
5937            tj1 = x;
5938            wcheb(x, -5.043413e+00, ref tj, ref tj1, ref result);
5939            wcheb(x, -5.499756e+00, ref tj, ref tj1, ref result);
5940            wcheb(x, -1.302137e+00, ref tj, ref tj1, ref result);
5941            wcheb(x, -1.915129e-01, ref tj, ref tj1, ref result);
5942            wcheb(x, -4.516329e-02, ref tj, ref tj1, ref result);
5943            wcheb(x, -1.260064e-02, ref tj, ref tj1, ref result);
5944            wcheb(x, -4.817269e-03, ref tj, ref tj1, ref result);
5945            wcheb(x, -5.478130e-04, ref tj, ref tj1, ref result);
5946            wcheb(x, -1.111668e-03, ref tj, ref tj1, ref result);
5947            wcheb(x, 4.093451e-04, ref tj, ref tj1, ref result);
5948            wcheb(x, -5.135860e-04, ref tj, ref tj1, ref result);
5949            return result;
5950        }
5951
5952
5953        /*************************************************************************
5954        Tail(S, 30)
5955        *************************************************************************/
5956        private static double w30(double s)
5957        {
5958            double result = 0;
5959            double x = 0;
5960            double tj = 0;
5961            double tj1 = 0;
5962
5963            result = 0;
5964            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5965            tj = 1;
5966            tj1 = x;
5967            wcheb(x, -5.024071e+00, ref tj, ref tj1, ref result);
5968            wcheb(x, -5.464515e+00, ref tj, ref tj1, ref result);
5969            wcheb(x, -1.278342e+00, ref tj, ref tj1, ref result);
5970            wcheb(x, -1.800030e-01, ref tj, ref tj1, ref result);
5971            wcheb(x, -4.046294e-02, ref tj, ref tj1, ref result);
5972            wcheb(x, -1.076162e-02, ref tj, ref tj1, ref result);
5973            wcheb(x, -3.968677e-03, ref tj, ref tj1, ref result);
5974            wcheb(x, -1.911679e-04, ref tj, ref tj1, ref result);
5975            wcheb(x, -8.619185e-04, ref tj, ref tj1, ref result);
5976            wcheb(x, 5.125362e-04, ref tj, ref tj1, ref result);
5977            wcheb(x, -3.984370e-04, ref tj, ref tj1, ref result);
5978            return result;
5979        }
5980
5981
5982        /*************************************************************************
5983        Tail(S, 40)
5984        *************************************************************************/
5985        private static double w40(double s)
5986        {
5987            double result = 0;
5988            double x = 0;
5989            double tj = 0;
5990            double tj1 = 0;
5991
5992            result = 0;
5993            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
5994            tj = 1;
5995            tj1 = x;
5996            wcheb(x, -4.904809e+00, ref tj, ref tj1, ref result);
5997            wcheb(x, -5.248327e+00, ref tj, ref tj1, ref result);
5998            wcheb(x, -1.136698e+00, ref tj, ref tj1, ref result);
5999            wcheb(x, -1.170982e-01, ref tj, ref tj1, ref result);
6000            wcheb(x, -1.824427e-02, ref tj, ref tj1, ref result);
6001            wcheb(x, -3.888648e-03, ref tj, ref tj1, ref result);
6002            wcheb(x, -1.344929e-03, ref tj, ref tj1, ref result);
6003            wcheb(x, 2.790407e-04, ref tj, ref tj1, ref result);
6004            wcheb(x, -4.619858e-04, ref tj, ref tj1, ref result);
6005            wcheb(x, 3.359121e-04, ref tj, ref tj1, ref result);
6006            wcheb(x, -2.883026e-04, ref tj, ref tj1, ref result);
6007            return result;
6008        }
6009
6010
6011        /*************************************************************************
6012        Tail(S, 60)
6013        *************************************************************************/
6014        private static double w60(double s)
6015        {
6016            double result = 0;
6017            double x = 0;
6018            double tj = 0;
6019            double tj1 = 0;
6020
6021            result = 0;
6022            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
6023            tj = 1;
6024            tj1 = x;
6025            wcheb(x, -4.809656e+00, ref tj, ref tj1, ref result);
6026            wcheb(x, -5.077191e+00, ref tj, ref tj1, ref result);
6027            wcheb(x, -1.029402e+00, ref tj, ref tj1, ref result);
6028            wcheb(x, -7.507931e-02, ref tj, ref tj1, ref result);
6029            wcheb(x, -6.506226e-03, ref tj, ref tj1, ref result);
6030            wcheb(x, -1.391278e-03, ref tj, ref tj1, ref result);
6031            wcheb(x, -4.263635e-04, ref tj, ref tj1, ref result);
6032            wcheb(x, 2.302271e-04, ref tj, ref tj1, ref result);
6033            wcheb(x, -2.384348e-04, ref tj, ref tj1, ref result);
6034            wcheb(x, 1.865587e-04, ref tj, ref tj1, ref result);
6035            wcheb(x, -1.622355e-04, ref tj, ref tj1, ref result);
6036            return result;
6037        }
6038
6039
6040        /*************************************************************************
6041        Tail(S, 120)
6042        *************************************************************************/
6043        private static double w120(double s)
6044        {
6045            double result = 0;
6046            double x = 0;
6047            double tj = 0;
6048            double tj1 = 0;
6049
6050            result = 0;
6051            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
6052            tj = 1;
6053            tj1 = x;
6054            wcheb(x, -4.729426e+00, ref tj, ref tj1, ref result);
6055            wcheb(x, -4.934426e+00, ref tj, ref tj1, ref result);
6056            wcheb(x, -9.433231e-01, ref tj, ref tj1, ref result);
6057            wcheb(x, -4.492504e-02, ref tj, ref tj1, ref result);
6058            wcheb(x, 1.673948e-05, ref tj, ref tj1, ref result);
6059            wcheb(x, -6.077014e-04, ref tj, ref tj1, ref result);
6060            wcheb(x, -7.215768e-05, ref tj, ref tj1, ref result);
6061            wcheb(x, 9.086734e-05, ref tj, ref tj1, ref result);
6062            wcheb(x, -8.447980e-05, ref tj, ref tj1, ref result);
6063            wcheb(x, 6.705028e-05, ref tj, ref tj1, ref result);
6064            wcheb(x, -5.828507e-05, ref tj, ref tj1, ref result);
6065            return result;
6066        }
6067
6068
6069        /*************************************************************************
6070        Tail(S, 200)
6071        *************************************************************************/
6072        private static double w200(double s)
6073        {
6074            double result = 0;
6075            double x = 0;
6076            double tj = 0;
6077            double tj1 = 0;
6078
6079            result = 0;
6080            x = Math.Min(2*(s-0.000000e+00)/4.000000e+00-1, 1.0);
6081            tj = 1;
6082            tj1 = x;
6083            wcheb(x, -4.700240e+00, ref tj, ref tj1, ref result);
6084            wcheb(x, -4.883080e+00, ref tj, ref tj1, ref result);
6085            wcheb(x, -9.132168e-01, ref tj, ref tj1, ref result);
6086            wcheb(x, -3.512684e-02, ref tj, ref tj1, ref result);
6087            wcheb(x, 1.726342e-03, ref tj, ref tj1, ref result);
6088            wcheb(x, -5.189796e-04, ref tj, ref tj1, ref result);
6089            wcheb(x, -1.628659e-06, ref tj, ref tj1, ref result);
6090            wcheb(x, 4.261786e-05, ref tj, ref tj1, ref result);
6091            wcheb(x, -4.002498e-05, ref tj, ref tj1, ref result);
6092            wcheb(x, 3.146287e-05, ref tj, ref tj1, ref result);
6093            wcheb(x, -2.727576e-05, ref tj, ref tj1, ref result);
6094            return result;
6095        }
6096
6097
6098        /*************************************************************************
6099        Tail(S,N), S>=0
6100        *************************************************************************/
6101        private static double wsigma(double s,
6102            int n)
6103        {
6104            double result = 0;
6105            double f0 = 0;
6106            double f1 = 0;
6107            double f2 = 0;
6108            double f3 = 0;
6109            double f4 = 0;
6110            double x0 = 0;
6111            double x1 = 0;
6112            double x2 = 0;
6113            double x3 = 0;
6114            double x4 = 0;
6115            double x = 0;
6116
6117            if( n==5 )
6118            {
6119                result = w5(s);
6120            }
6121            if( n==6 )
6122            {
6123                result = w6(s);
6124            }
6125            if( n==7 )
6126            {
6127                result = w7(s);
6128            }
6129            if( n==8 )
6130            {
6131                result = w8(s);
6132            }
6133            if( n==9 )
6134            {
6135                result = w9(s);
6136            }
6137            if( n==10 )
6138            {
6139                result = w10(s);
6140            }
6141            if( n==11 )
6142            {
6143                result = w11(s);
6144            }
6145            if( n==12 )
6146            {
6147                result = w12(s);
6148            }
6149            if( n==13 )
6150            {
6151                result = w13(s);
6152            }
6153            if( n==14 )
6154            {
6155                result = w14(s);
6156            }
6157            if( n==15 )
6158            {
6159                result = w15(s);
6160            }
6161            if( n==16 )
6162            {
6163                result = w16(s);
6164            }
6165            if( n==17 )
6166            {
6167                result = w17(s);
6168            }
6169            if( n==18 )
6170            {
6171                result = w18(s);
6172            }
6173            if( n==19 )
6174            {
6175                result = w19(s);
6176            }
6177            if( n==20 )
6178            {
6179                result = w20(s);
6180            }
6181            if( n==21 )
6182            {
6183                result = w21(s);
6184            }
6185            if( n==22 )
6186            {
6187                result = w22(s);
6188            }
6189            if( n==23 )
6190            {
6191                result = w23(s);
6192            }
6193            if( n==24 )
6194            {
6195                result = w24(s);
6196            }
6197            if( n==25 )
6198            {
6199                result = w25(s);
6200            }
6201            if( n==26 )
6202            {
6203                result = w26(s);
6204            }
6205            if( n==27 )
6206            {
6207                result = w27(s);
6208            }
6209            if( n==28 )
6210            {
6211                result = w28(s);
6212            }
6213            if( n==29 )
6214            {
6215                result = w29(s);
6216            }
6217            if( n==30 )
6218            {
6219                result = w30(s);
6220            }
6221            if( n>30 )
6222            {
6223                x = 1.0/n;
6224                x0 = 1.0/30;
6225                f0 = w30(s);
6226                x1 = 1.0/40;
6227                f1 = w40(s);
6228                x2 = 1.0/60;
6229                f2 = w60(s);
6230                x3 = 1.0/120;
6231                f3 = w120(s);
6232                x4 = 1.0/200;
6233                f4 = w200(s);
6234                f1 = ((x-x0)*f1-(x-x1)*f0)/(x1-x0);
6235                f2 = ((x-x0)*f2-(x-x2)*f0)/(x2-x0);
6236                f3 = ((x-x0)*f3-(x-x3)*f0)/(x3-x0);
6237                f4 = ((x-x0)*f4-(x-x4)*f0)/(x4-x0);
6238                f2 = ((x-x1)*f2-(x-x2)*f1)/(x2-x1);
6239                f3 = ((x-x1)*f3-(x-x3)*f1)/(x3-x1);
6240                f4 = ((x-x1)*f4-(x-x4)*f1)/(x4-x1);
6241                f3 = ((x-x2)*f3-(x-x3)*f2)/(x3-x2);
6242                f4 = ((x-x2)*f4-(x-x4)*f2)/(x4-x2);
6243                f4 = ((x-x3)*f4-(x-x4)*f3)/(x4-x3);
6244                result = f4;
6245            }
6246            return result;
6247        }
6248    }
6249}
Note: See TracBrowser for help on using the repository browser.