Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/2.5.0/ALGLIB-2.5.0/jarquebera.cs @ 3839

Last change on this file since 3839 was 3839, checked in by mkommend, 14 years ago

implemented first version of LR (ticket #1012)

File size: 90.5 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 jarquebera
26    {
27        /*************************************************************************
28        Jarque-Bera test
29
30        This test checks hypotheses about the fact that a  given  sample  X  is  a
31        sample of normal random variable.
32
33        Requirements:
34            * the number of elements in the sample is not less than 5.
35
36        Input parameters:
37            X   -   sample. Array whose index goes from 0 to N-1.
38            N   -   size of the sample. N>=5
39
40        Output parameters:
41            BothTails   -   p-value for two-tailed test.
42                            If BothTails is less than the given significance level
43                            the null hypothesis is rejected.
44            LeftTail    -   p-value for left-tailed test.
45                            If LeftTail is less than the given significance level,
46                            the null hypothesis is rejected.
47            RightTail   -   p-value for right-tailed test.
48                            If RightTail is less than the given significance level
49                            the null hypothesis is rejected.
50
51        Accuracy of the approximation used (5<=N<=1951):
52
53        p-value       relative error (5<=N<=1951)
54        [1, 0.1]            < 1%
55        [0.1, 0.01]         < 2%
56        [0.01, 0.001]       < 6%
57        [0.001, 0]          wasn't measured
58
59        For N>1951 accuracy wasn't measured but it shouldn't be sharply  different
60        from table values.
61
62          -- ALGLIB --
63             Copyright 09.04.2007 by Bochkanov Sergey
64        *************************************************************************/
65        public static void jarqueberatest(ref double[] x,
66            int n,
67            ref double p)
68        {
69            double s = 0;
70
71           
72            //
73            // N is too small
74            //
75            if( n<5 )
76            {
77                p = 1.0;
78                return;
79            }
80           
81            //
82            // N is large enough
83            //
84            jarqueberastatistic(ref x, n, ref s);
85            p = jarqueberaapprox(n, s);
86        }
87
88
89        private static void jarqueberastatistic(ref double[] x,
90            int n,
91            ref double s)
92        {
93            int i = 0;
94            double v = 0;
95            double v1 = 0;
96            double v2 = 0;
97            double stddev = 0;
98            double mean = 0;
99            double variance = 0;
100            double skewness = 0;
101            double kurtosis = 0;
102
103            mean = 0;
104            variance = 0;
105            skewness = 0;
106            kurtosis = 0;
107            stddev = 0;
108            System.Diagnostics.Debug.Assert(n>1);
109           
110            //
111            // Mean
112            //
113            for(i=0; i<=n-1; i++)
114            {
115                mean = mean+x[i];
116            }
117            mean = mean/n;
118           
119            //
120            // Variance (using corrected two-pass algorithm)
121            //
122            if( n!=1 )
123            {
124                v1 = 0;
125                for(i=0; i<=n-1; i++)
126                {
127                    v1 = v1+AP.Math.Sqr(x[i]-mean);
128                }
129                v2 = 0;
130                for(i=0; i<=n-1; i++)
131                {
132                    v2 = v2+(x[i]-mean);
133                }
134                v2 = AP.Math.Sqr(v2)/n;
135                variance = (v1-v2)/(n-1);
136                if( (double)(variance)<(double)(0) )
137                {
138                    variance = 0;
139                }
140                stddev = Math.Sqrt(variance);
141            }
142           
143            //
144            // Skewness and kurtosis
145            //
146            if( (double)(stddev)!=(double)(0) )
147            {
148                for(i=0; i<=n-1; i++)
149                {
150                    v = (x[i]-mean)/stddev;
151                    v2 = AP.Math.Sqr(v);
152                    skewness = skewness+v2*v;
153                    kurtosis = kurtosis+AP.Math.Sqr(v2);
154                }
155                skewness = skewness/n;
156                kurtosis = kurtosis/n-3;
157            }
158           
159            //
160            // Statistic
161            //
162            s = (double)(n)/(double)(6)*(AP.Math.Sqr(skewness)+AP.Math.Sqr(kurtosis)/4);
163        }
164
165
166        private static double jarqueberaapprox(int n,
167            double s)
168        {
169            double result = 0;
170            double[] vx = new double[0];
171            double[] vy = new double[0];
172            double[,] ctbl = new double[0,0];
173            double t1 = 0;
174            double t2 = 0;
175            double t3 = 0;
176            double t = 0;
177            double f1 = 0;
178            double f2 = 0;
179            double f3 = 0;
180            double f12 = 0;
181            double f23 = 0;
182            double x = 0;
183
184            result = 1;
185            x = s;
186            if( n<5 )
187            {
188                return result;
189            }
190           
191            //
192            // N = 5..20 are tabulated
193            //
194            if( n>=5 & n<=20 )
195            {
196                if( n==5 )
197                {
198                    result = Math.Exp(jbtbl5(x));
199                }
200                if( n==6 )
201                {
202                    result = Math.Exp(jbtbl6(x));
203                }
204                if( n==7 )
205                {
206                    result = Math.Exp(jbtbl7(x));
207                }
208                if( n==8 )
209                {
210                    result = Math.Exp(jbtbl8(x));
211                }
212                if( n==9 )
213                {
214                    result = Math.Exp(jbtbl9(x));
215                }
216                if( n==10 )
217                {
218                    result = Math.Exp(jbtbl10(x));
219                }
220                if( n==11 )
221                {
222                    result = Math.Exp(jbtbl11(x));
223                }
224                if( n==12 )
225                {
226                    result = Math.Exp(jbtbl12(x));
227                }
228                if( n==13 )
229                {
230                    result = Math.Exp(jbtbl13(x));
231                }
232                if( n==14 )
233                {
234                    result = Math.Exp(jbtbl14(x));
235                }
236                if( n==15 )
237                {
238                    result = Math.Exp(jbtbl15(x));
239                }
240                if( n==16 )
241                {
242                    result = Math.Exp(jbtbl16(x));
243                }
244                if( n==17 )
245                {
246                    result = Math.Exp(jbtbl17(x));
247                }
248                if( n==18 )
249                {
250                    result = Math.Exp(jbtbl18(x));
251                }
252                if( n==19 )
253                {
254                    result = Math.Exp(jbtbl19(x));
255                }
256                if( n==20 )
257                {
258                    result = Math.Exp(jbtbl20(x));
259                }
260                return result;
261            }
262           
263            //
264            // N = 20, 30, 50 are tabulated.
265            // In-between values are interpolated
266            // using interpolating polynomial of the second degree.
267            //
268            if( n>20 & n<=50 )
269            {
270                t1 = -(1.0/20.0);
271                t2 = -(1.0/30.0);
272                t3 = -(1.0/50.0);
273                t = -(1.0/n);
274                f1 = jbtbl20(x);
275                f2 = jbtbl30(x);
276                f3 = jbtbl50(x);
277                f12 = ((t-t2)*f1+(t1-t)*f2)/(t1-t2);
278                f23 = ((t-t3)*f2+(t2-t)*f3)/(t2-t3);
279                result = ((t-t3)*f12+(t1-t)*f23)/(t1-t3);
280                if( (double)(result)>(double)(0) )
281                {
282                    result = 0;
283                }
284                result = Math.Exp(result);
285                return result;
286            }
287           
288            //
289            // N = 50, 65, 100 are tabulated.
290            // In-between values are interpolated
291            // using interpolating polynomial of the second degree.
292            //
293            if( n>50 & n<=100 )
294            {
295                t1 = -(1.0/50.0);
296                t2 = -(1.0/65.0);
297                t3 = -(1.0/100.0);
298                t = -(1.0/n);
299                f1 = jbtbl50(x);
300                f2 = jbtbl65(x);
301                f3 = jbtbl100(x);
302                f12 = ((t-t2)*f1+(t1-t)*f2)/(t1-t2);
303                f23 = ((t-t3)*f2+(t2-t)*f3)/(t2-t3);
304                result = ((t-t3)*f12+(t1-t)*f23)/(t1-t3);
305                if( (double)(result)>(double)(0) )
306                {
307                    result = 0;
308                }
309                result = Math.Exp(result);
310                return result;
311            }
312           
313            //
314            // N = 100, 130, 200 are tabulated.
315            // In-between values are interpolated
316            // using interpolating polynomial of the second degree.
317            //
318            if( n>100 & n<=200 )
319            {
320                t1 = -(1.0/100.0);
321                t2 = -(1.0/130.0);
322                t3 = -(1.0/200.0);
323                t = -(1.0/n);
324                f1 = jbtbl100(x);
325                f2 = jbtbl130(x);
326                f3 = jbtbl200(x);
327                f12 = ((t-t2)*f1+(t1-t)*f2)/(t1-t2);
328                f23 = ((t-t3)*f2+(t2-t)*f3)/(t2-t3);
329                result = ((t-t3)*f12+(t1-t)*f23)/(t1-t3);
330                if( (double)(result)>(double)(0) )
331                {
332                    result = 0;
333                }
334                result = Math.Exp(result);
335                return result;
336            }
337           
338            //
339            // N = 200, 301, 501 are tabulated.
340            // In-between values are interpolated
341            // using interpolating polynomial of the second degree.
342            //
343            if( n>200 & n<=501 )
344            {
345                t1 = -(1.0/200.0);
346                t2 = -(1.0/301.0);
347                t3 = -(1.0/501.0);
348                t = -(1.0/n);
349                f1 = jbtbl200(x);
350                f2 = jbtbl301(x);
351                f3 = jbtbl501(x);
352                f12 = ((t-t2)*f1+(t1-t)*f2)/(t1-t2);
353                f23 = ((t-t3)*f2+(t2-t)*f3)/(t2-t3);
354                result = ((t-t3)*f12+(t1-t)*f23)/(t1-t3);
355                if( (double)(result)>(double)(0) )
356                {
357                    result = 0;
358                }
359                result = Math.Exp(result);
360                return result;
361            }
362           
363            //
364            // N = 501, 701, 1401 are tabulated.
365            // In-between values are interpolated
366            // using interpolating polynomial of the second degree.
367            //
368            if( n>501 & n<=1401 )
369            {
370                t1 = -(1.0/501.0);
371                t2 = -(1.0/701.0);
372                t3 = -(1.0/1401.0);
373                t = -(1.0/n);
374                f1 = jbtbl501(x);
375                f2 = jbtbl701(x);
376                f3 = jbtbl1401(x);
377                f12 = ((t-t2)*f1+(t1-t)*f2)/(t1-t2);
378                f23 = ((t-t3)*f2+(t2-t)*f3)/(t2-t3);
379                result = ((t-t3)*f12+(t1-t)*f23)/(t1-t3);
380                if( (double)(result)>(double)(0) )
381                {
382                    result = 0;
383                }
384                result = Math.Exp(result);
385                return result;
386            }
387           
388            //
389            // Asymptotic expansion
390            //
391            if( n>1401 )
392            {
393                result = -(0.5*x)+(jbtbl1401(x)+0.5*x)*Math.Sqrt((double)(1401)/(double)(n));
394                if( (double)(result)>(double)(0) )
395                {
396                    result = 0;
397                }
398                result = Math.Exp(result);
399                return result;
400            }
401            return result;
402        }
403
404
405        private static double jbtbl5(double s)
406        {
407            double result = 0;
408            double x = 0;
409            double tj = 0;
410            double tj1 = 0;
411
412            result = 0;
413            if( (double)(s)<=(double)(0.4000) )
414            {
415                x = 2*(s-0.000000)/0.400000-1;
416                tj = 1;
417                tj1 = x;
418                jbcheb(x, -1.097885e-20, ref tj, ref tj1, ref result);
419                jbcheb(x, -2.854501e-20, ref tj, ref tj1, ref result);
420                jbcheb(x, -1.756616e-20, ref tj, ref tj1, ref result);
421                if( (double)(result)>(double)(0) )
422                {
423                    result = 0;
424                }
425                return result;
426            }
427            if( (double)(s)<=(double)(1.1000) )
428            {
429                x = 2*(s-0.400000)/0.700000-1;
430                tj = 1;
431                tj1 = x;
432                jbcheb(x, -1.324545e+00, ref tj, ref tj1, ref result);
433                jbcheb(x, -1.075941e+00, ref tj, ref tj1, ref result);
434                jbcheb(x, -9.772272e-01, ref tj, ref tj1, ref result);
435                jbcheb(x, 3.175686e-01, ref tj, ref tj1, ref result);
436                jbcheb(x, -1.576162e-01, ref tj, ref tj1, ref result);
437                jbcheb(x, 1.126861e-01, ref tj, ref tj1, ref result);
438                jbcheb(x, -3.434425e-02, ref tj, ref tj1, ref result);
439                jbcheb(x, -2.790359e-01, ref tj, ref tj1, ref result);
440                jbcheb(x, 2.809178e-02, ref tj, ref tj1, ref result);
441                jbcheb(x, -5.479704e-01, ref tj, ref tj1, ref result);
442                jbcheb(x, 3.717040e-02, ref tj, ref tj1, ref result);
443                jbcheb(x, -5.294170e-01, ref tj, ref tj1, ref result);
444                jbcheb(x, 2.880632e-02, ref tj, ref tj1, ref result);
445                jbcheb(x, -3.023344e-01, ref tj, ref tj1, ref result);
446                jbcheb(x, 1.601531e-02, ref tj, ref tj1, ref result);
447                jbcheb(x, -7.920403e-02, ref tj, ref tj1, ref result);
448                if( (double)(result)>(double)(0) )
449                {
450                    result = 0;
451                }
452                return result;
453            }
454            result = -(5.188419e+02*(s-1.100000e+00))-4.767297e+00;
455            return result;
456        }
457
458
459        private static double jbtbl6(double s)
460        {
461            double result = 0;
462            double x = 0;
463            double tj = 0;
464            double tj1 = 0;
465
466            result = 0;
467            if( (double)(s)<=(double)(0.2500) )
468            {
469                x = 2*(s-0.000000)/0.250000-1;
470                tj = 1;
471                tj1 = x;
472                jbcheb(x, -2.274707e-04, ref tj, ref tj1, ref result);
473                jbcheb(x, -5.700471e-04, ref tj, ref tj1, ref result);
474                jbcheb(x, -3.425764e-04, ref tj, ref tj1, ref result);
475                if( (double)(result)>(double)(0) )
476                {
477                    result = 0;
478                }
479                return result;
480            }
481            if( (double)(s)<=(double)(1.3000) )
482            {
483                x = 2*(s-0.250000)/1.050000-1;
484                tj = 1;
485                tj1 = x;
486                jbcheb(x, -1.339000e+00, ref tj, ref tj1, ref result);
487                jbcheb(x, -2.011104e+00, ref tj, ref tj1, ref result);
488                jbcheb(x, -8.168177e-01, ref tj, ref tj1, ref result);
489                jbcheb(x, -1.085666e-01, ref tj, ref tj1, ref result);
490                jbcheb(x, 7.738606e-02, ref tj, ref tj1, ref result);
491                jbcheb(x, 7.022876e-02, ref tj, ref tj1, ref result);
492                jbcheb(x, 3.462402e-02, ref tj, ref tj1, ref result);
493                jbcheb(x, 6.908270e-03, ref tj, ref tj1, ref result);
494                jbcheb(x, -8.230772e-03, ref tj, ref tj1, ref result);
495                jbcheb(x, -1.006996e-02, ref tj, ref tj1, ref result);
496                jbcheb(x, -5.410222e-03, ref tj, ref tj1, ref result);
497                jbcheb(x, -2.893768e-03, ref tj, ref tj1, ref result);
498                jbcheb(x, 8.114564e-04, ref tj, ref tj1, ref result);
499                if( (double)(result)>(double)(0) )
500                {
501                    result = 0;
502                }
503                return result;
504            }
505            if( (double)(s)<=(double)(1.8500) )
506            {
507                x = 2*(s-1.300000)/0.550000-1;
508                tj = 1;
509                tj1 = x;
510                jbcheb(x, -6.794311e+00, ref tj, ref tj1, ref result);
511                jbcheb(x, -3.578700e+00, ref tj, ref tj1, ref result);
512                jbcheb(x, -1.394664e+00, ref tj, ref tj1, ref result);
513                jbcheb(x, -7.928290e-01, ref tj, ref tj1, ref result);
514                jbcheb(x, -4.813273e-01, ref tj, ref tj1, ref result);
515                jbcheb(x, -3.076063e-01, ref tj, ref tj1, ref result);
516                jbcheb(x, -1.835380e-01, ref tj, ref tj1, ref result);
517                jbcheb(x, -1.013013e-01, ref tj, ref tj1, ref result);
518                jbcheb(x, -5.058903e-02, ref tj, ref tj1, ref result);
519                jbcheb(x, -1.856915e-02, ref tj, ref tj1, ref result);
520                jbcheb(x, -6.710887e-03, ref tj, ref tj1, ref result);
521                if( (double)(result)>(double)(0) )
522                {
523                    result = 0;
524                }
525                return result;
526            }
527            result = -(1.770029e+02*(s-1.850000e+00))-1.371015e+01;
528            return result;
529        }
530
531
532        private static double jbtbl7(double s)
533        {
534            double result = 0;
535            double x = 0;
536            double tj = 0;
537            double tj1 = 0;
538
539            result = 0;
540            if( (double)(s)<=(double)(1.4000) )
541            {
542                x = 2*(s-0.000000)/1.400000-1;
543                tj = 1;
544                tj1 = x;
545                jbcheb(x, -1.093681e+00, ref tj, ref tj1, ref result);
546                jbcheb(x, -1.695911e+00, ref tj, ref tj1, ref result);
547                jbcheb(x, -7.473192e-01, ref tj, ref tj1, ref result);
548                jbcheb(x, -1.203236e-01, ref tj, ref tj1, ref result);
549                jbcheb(x, 6.590379e-02, ref tj, ref tj1, ref result);
550                jbcheb(x, 6.291876e-02, ref tj, ref tj1, ref result);
551                jbcheb(x, 3.132007e-02, ref tj, ref tj1, ref result);
552                jbcheb(x, 9.411147e-03, ref tj, ref tj1, ref result);
553                jbcheb(x, -1.180067e-03, ref tj, ref tj1, ref result);
554                jbcheb(x, -3.487610e-03, ref tj, ref tj1, ref result);
555                jbcheb(x, -2.436561e-03, ref tj, ref tj1, ref result);
556                if( (double)(result)>(double)(0) )
557                {
558                    result = 0;
559                }
560                return result;
561            }
562            if( (double)(s)<=(double)(3.0000) )
563            {
564                x = 2*(s-1.400000)/1.600000-1;
565                tj = 1;
566                tj1 = x;
567                jbcheb(x, -5.947854e+00, ref tj, ref tj1, ref result);
568                jbcheb(x, -2.772675e+00, ref tj, ref tj1, ref result);
569                jbcheb(x, -4.707912e-01, ref tj, ref tj1, ref result);
570                jbcheb(x, -1.691171e-01, ref tj, ref tj1, ref result);
571                jbcheb(x, -4.132795e-02, ref tj, ref tj1, ref result);
572                jbcheb(x, -1.481310e-02, ref tj, ref tj1, ref result);
573                jbcheb(x, 2.867536e-03, ref tj, ref tj1, ref result);
574                jbcheb(x, 8.772327e-04, ref tj, ref tj1, ref result);
575                jbcheb(x, 5.033387e-03, ref tj, ref tj1, ref result);
576                jbcheb(x, -1.378277e-03, ref tj, ref tj1, ref result);
577                jbcheb(x, -2.497964e-03, ref tj, ref tj1, ref result);
578                jbcheb(x, -3.636814e-03, ref tj, ref tj1, ref result);
579                jbcheb(x, -9.581640e-04, ref tj, ref tj1, ref result);
580                if( (double)(result)>(double)(0) )
581                {
582                    result = 0;
583                }
584                return result;
585            }
586            if( (double)(s)<=(double)(3.2000) )
587            {
588                x = 2*(s-3.000000)/0.200000-1;
589                tj = 1;
590                tj1 = x;
591                jbcheb(x, -7.511008e+00, ref tj, ref tj1, ref result);
592                jbcheb(x, -8.140472e-01, ref tj, ref tj1, ref result);
593                jbcheb(x, 1.682053e+00, ref tj, ref tj1, ref result);
594                jbcheb(x, -2.568561e-02, ref tj, ref tj1, ref result);
595                jbcheb(x, -1.933930e+00, ref tj, ref tj1, ref result);
596                jbcheb(x, -8.140472e-01, ref tj, ref tj1, ref result);
597                jbcheb(x, -3.895025e+00, ref tj, ref tj1, ref result);
598                jbcheb(x, -8.140472e-01, ref tj, ref tj1, ref result);
599                jbcheb(x, -1.933930e+00, ref tj, ref tj1, ref result);
600                jbcheb(x, -2.568561e-02, ref tj, ref tj1, ref result);
601                jbcheb(x, 1.682053e+00, ref tj, ref tj1, ref result);
602                if( (double)(result)>(double)(0) )
603                {
604                    result = 0;
605                }
606                return result;
607            }
608            result = -(1.824116e+03*(s-3.200000e+00))-1.440330e+01;
609            return result;
610        }
611
612
613        private static double jbtbl8(double s)
614        {
615            double result = 0;
616            double x = 0;
617            double tj = 0;
618            double tj1 = 0;
619
620            result = 0;
621            if( (double)(s)<=(double)(1.3000) )
622            {
623                x = 2*(s-0.000000)/1.300000-1;
624                tj = 1;
625                tj1 = x;
626                jbcheb(x, -7.199015e-01, ref tj, ref tj1, ref result);
627                jbcheb(x, -1.095921e+00, ref tj, ref tj1, ref result);
628                jbcheb(x, -4.736828e-01, ref tj, ref tj1, ref result);
629                jbcheb(x, -1.047438e-01, ref tj, ref tj1, ref result);
630                jbcheb(x, -2.484320e-03, ref tj, ref tj1, ref result);
631                jbcheb(x, 7.937923e-03, ref tj, ref tj1, ref result);
632                jbcheb(x, 4.810470e-03, ref tj, ref tj1, ref result);
633                jbcheb(x, 2.139780e-03, ref tj, ref tj1, ref result);
634                jbcheb(x, 6.708443e-04, ref tj, ref tj1, ref result);
635                if( (double)(result)>(double)(0) )
636                {
637                    result = 0;
638                }
639                return result;
640            }
641            if( (double)(s)<=(double)(2.0000) )
642            {
643                x = 2*(s-1.300000)/0.700000-1;
644                tj = 1;
645                tj1 = x;
646                jbcheb(x, -3.378966e+00, ref tj, ref tj1, ref result);
647                jbcheb(x, -7.802461e-01, ref tj, ref tj1, ref result);
648                jbcheb(x, 1.547593e-01, ref tj, ref tj1, ref result);
649                jbcheb(x, -6.241042e-02, ref tj, ref tj1, ref result);
650                jbcheb(x, 1.203274e-02, ref tj, ref tj1, ref result);
651                jbcheb(x, 5.201990e-03, ref tj, ref tj1, ref result);
652                jbcheb(x, -5.125597e-03, ref tj, ref tj1, ref result);
653                jbcheb(x, 1.584426e-03, ref tj, ref tj1, ref result);
654                jbcheb(x, 2.546069e-04, ref tj, ref tj1, ref result);
655                if( (double)(result)>(double)(0) )
656                {
657                    result = 0;
658                }
659                return result;
660            }
661            if( (double)(s)<=(double)(5.0000) )
662            {
663                x = 2*(s-2.000000)/3.000000-1;
664                tj = 1;
665                tj1 = x;
666                jbcheb(x, -6.828366e+00, ref tj, ref tj1, ref result);
667                jbcheb(x, -3.137533e+00, ref tj, ref tj1, ref result);
668                jbcheb(x, -5.016671e-01, ref tj, ref tj1, ref result);
669                jbcheb(x, -1.745637e-01, ref tj, ref tj1, ref result);
670                jbcheb(x, -5.189801e-02, ref tj, ref tj1, ref result);
671                jbcheb(x, -1.621610e-02, ref tj, ref tj1, ref result);
672                jbcheb(x, -6.741122e-03, ref tj, ref tj1, ref result);
673                jbcheb(x, -4.516368e-03, ref tj, ref tj1, ref result);
674                jbcheb(x, 3.552085e-04, ref tj, ref tj1, ref result);
675                jbcheb(x, 2.787029e-03, ref tj, ref tj1, ref result);
676                jbcheb(x, 5.359774e-03, ref tj, ref tj1, ref result);
677                if( (double)(result)>(double)(0) )
678                {
679                    result = 0;
680                }
681                return result;
682            }
683            result = -(5.087028e+00*(s-5.000000e+00))-1.071300e+01;
684            return result;
685        }
686
687
688        private static double jbtbl9(double s)
689        {
690            double result = 0;
691            double x = 0;
692            double tj = 0;
693            double tj1 = 0;
694
695            result = 0;
696            if( (double)(s)<=(double)(1.3000) )
697            {
698                x = 2*(s-0.000000)/1.300000-1;
699                tj = 1;
700                tj1 = x;
701                jbcheb(x, -6.279320e-01, ref tj, ref tj1, ref result);
702                jbcheb(x, -9.277151e-01, ref tj, ref tj1, ref result);
703                jbcheb(x, -3.669339e-01, ref tj, ref tj1, ref result);
704                jbcheb(x, -7.086149e-02, ref tj, ref tj1, ref result);
705                jbcheb(x, -1.333816e-03, ref tj, ref tj1, ref result);
706                jbcheb(x, 3.871249e-03, ref tj, ref tj1, ref result);
707                jbcheb(x, 2.007048e-03, ref tj, ref tj1, ref result);
708                jbcheb(x, 7.482245e-04, ref tj, ref tj1, ref result);
709                jbcheb(x, 2.355615e-04, ref tj, ref tj1, ref result);
710                if( (double)(result)>(double)(0) )
711                {
712                    result = 0;
713                }
714                return result;
715            }
716            if( (double)(s)<=(double)(2.0000) )
717            {
718                x = 2*(s-1.300000)/0.700000-1;
719                tj = 1;
720                tj1 = x;
721                jbcheb(x, -2.981430e+00, ref tj, ref tj1, ref result);
722                jbcheb(x, -7.972248e-01, ref tj, ref tj1, ref result);
723                jbcheb(x, 1.747737e-01, ref tj, ref tj1, ref result);
724                jbcheb(x, -3.808530e-02, ref tj, ref tj1, ref result);
725                jbcheb(x, -7.888305e-03, ref tj, ref tj1, ref result);
726                jbcheb(x, 9.001302e-03, ref tj, ref tj1, ref result);
727                jbcheb(x, -1.378767e-03, ref tj, ref tj1, ref result);
728                jbcheb(x, -1.108510e-03, ref tj, ref tj1, ref result);
729                jbcheb(x, 5.915372e-04, ref tj, ref tj1, ref result);
730                if( (double)(result)>(double)(0) )
731                {
732                    result = 0;
733                }
734                return result;
735            }
736            if( (double)(s)<=(double)(7.0000) )
737            {
738                x = 2*(s-2.000000)/5.000000-1;
739                tj = 1;
740                tj1 = x;
741                jbcheb(x, -6.387463e+00, ref tj, ref tj1, ref result);
742                jbcheb(x, -2.845231e+00, ref tj, ref tj1, ref result);
743                jbcheb(x, -1.809956e-01, ref tj, ref tj1, ref result);
744                jbcheb(x, -7.543461e-02, ref tj, ref tj1, ref result);
745                jbcheb(x, -4.880397e-03, ref tj, ref tj1, ref result);
746                jbcheb(x, -1.160074e-02, ref tj, ref tj1, ref result);
747                jbcheb(x, -7.356527e-03, ref tj, ref tj1, ref result);
748                jbcheb(x, -4.394428e-03, ref tj, ref tj1, ref result);
749                jbcheb(x, 9.619892e-04, ref tj, ref tj1, ref result);
750                jbcheb(x, -2.758763e-04, ref tj, ref tj1, ref result);
751                jbcheb(x, 4.790977e-05, ref tj, ref tj1, ref result);
752                if( (double)(result)>(double)(0) )
753                {
754                    result = 0;
755                }
756                return result;
757            }
758            result = -(2.020952e+00*(s-7.000000e+00))-9.516623e+00;
759            return result;
760        }
761
762
763        private static double jbtbl10(double s)
764        {
765            double result = 0;
766            double x = 0;
767            double tj = 0;
768            double tj1 = 0;
769
770            result = 0;
771            if( (double)(s)<=(double)(1.2000) )
772            {
773                x = 2*(s-0.000000)/1.200000-1;
774                tj = 1;
775                tj1 = x;
776                jbcheb(x, -4.590993e-01, ref tj, ref tj1, ref result);
777                jbcheb(x, -6.562730e-01, ref tj, ref tj1, ref result);
778                jbcheb(x, -2.353934e-01, ref tj, ref tj1, ref result);
779                jbcheb(x, -4.069933e-02, ref tj, ref tj1, ref result);
780                jbcheb(x, -1.849151e-03, ref tj, ref tj1, ref result);
781                jbcheb(x, 8.931406e-04, ref tj, ref tj1, ref result);
782                jbcheb(x, 3.636295e-04, ref tj, ref tj1, ref result);
783                jbcheb(x, 1.178340e-05, ref tj, ref tj1, ref result);
784                jbcheb(x, -8.917749e-05, ref tj, ref tj1, ref result);
785                if( (double)(result)>(double)(0) )
786                {
787                    result = 0;
788                }
789                return result;
790            }
791            if( (double)(s)<=(double)(2.0000) )
792            {
793                x = 2*(s-1.200000)/0.800000-1;
794                tj = 1;
795                tj1 = x;
796                jbcheb(x, -2.537658e+00, ref tj, ref tj1, ref result);
797                jbcheb(x, -9.962401e-01, ref tj, ref tj1, ref result);
798                jbcheb(x, 1.838715e-01, ref tj, ref tj1, ref result);
799                jbcheb(x, 1.055792e-02, ref tj, ref tj1, ref result);
800                jbcheb(x, -2.580316e-02, ref tj, ref tj1, ref result);
801                jbcheb(x, 1.781701e-03, ref tj, ref tj1, ref result);
802                jbcheb(x, 3.770362e-03, ref tj, ref tj1, ref result);
803                jbcheb(x, -4.838983e-04, ref tj, ref tj1, ref result);
804                jbcheb(x, -6.999052e-04, ref tj, ref tj1, ref result);
805                if( (double)(result)>(double)(0) )
806                {
807                    result = 0;
808                }
809                return result;
810            }
811            if( (double)(s)<=(double)(7.0000) )
812            {
813                x = 2*(s-2.000000)/5.000000-1;
814                tj = 1;
815                tj1 = x;
816                jbcheb(x, -5.337524e+00, ref tj, ref tj1, ref result);
817                jbcheb(x, -1.877029e+00, ref tj, ref tj1, ref result);
818                jbcheb(x, 4.734650e-02, ref tj, ref tj1, ref result);
819                jbcheb(x, -4.249254e-02, ref tj, ref tj1, ref result);
820                jbcheb(x, 3.320250e-03, ref tj, ref tj1, ref result);
821                jbcheb(x, -6.432266e-03, ref tj, ref tj1, ref result);
822                if( (double)(result)>(double)(0) )
823                {
824                    result = 0;
825                }
826                return result;
827            }
828            result = -(8.711035e-01*(s-7.000000e+00))-7.212811e+00;
829            return result;
830        }
831
832
833        private static double jbtbl11(double s)
834        {
835            double result = 0;
836            double x = 0;
837            double tj = 0;
838            double tj1 = 0;
839
840            result = 0;
841            if( (double)(s)<=(double)(1.2000) )
842            {
843                x = 2*(s-0.000000)/1.200000-1;
844                tj = 1;
845                tj1 = x;
846                jbcheb(x, -4.339517e-01, ref tj, ref tj1, ref result);
847                jbcheb(x, -6.051558e-01, ref tj, ref tj1, ref result);
848                jbcheb(x, -2.000992e-01, ref tj, ref tj1, ref result);
849                jbcheb(x, -3.022547e-02, ref tj, ref tj1, ref result);
850                jbcheb(x, -9.808401e-04, ref tj, ref tj1, ref result);
851                jbcheb(x, 5.592870e-04, ref tj, ref tj1, ref result);
852                jbcheb(x, 3.575081e-04, ref tj, ref tj1, ref result);
853                jbcheb(x, 2.086173e-04, ref tj, ref tj1, ref result);
854                jbcheb(x, 6.089011e-05, ref tj, ref tj1, ref result);
855                if( (double)(result)>(double)(0) )
856                {
857                    result = 0;
858                }
859                return result;
860            }
861            if( (double)(s)<=(double)(2.2500) )
862            {
863                x = 2*(s-1.200000)/1.050000-1;
864                tj = 1;
865                tj1 = x;
866                jbcheb(x, -2.523221e+00, ref tj, ref tj1, ref result);
867                jbcheb(x, -1.068388e+00, ref tj, ref tj1, ref result);
868                jbcheb(x, 2.179661e-01, ref tj, ref tj1, ref result);
869                jbcheb(x, -1.555524e-03, ref tj, ref tj1, ref result);
870                jbcheb(x, -3.238964e-02, ref tj, ref tj1, ref result);
871                jbcheb(x, 7.364320e-03, ref tj, ref tj1, ref result);
872                jbcheb(x, 4.895771e-03, ref tj, ref tj1, ref result);
873                jbcheb(x, -1.762774e-03, ref tj, ref tj1, ref result);
874                jbcheb(x, -8.201340e-04, ref tj, ref tj1, ref result);
875                if( (double)(result)>(double)(0) )
876                {
877                    result = 0;
878                }
879                return result;
880            }
881            if( (double)(s)<=(double)(8.0000) )
882            {
883                x = 2*(s-2.250000)/5.750000-1;
884                tj = 1;
885                tj1 = x;
886                jbcheb(x, -5.212179e+00, ref tj, ref tj1, ref result);
887                jbcheb(x, -1.684579e+00, ref tj, ref tj1, ref result);
888                jbcheb(x, 8.299519e-02, ref tj, ref tj1, ref result);
889                jbcheb(x, -3.606261e-02, ref tj, ref tj1, ref result);
890                jbcheb(x, 7.310869e-03, ref tj, ref tj1, ref result);
891                jbcheb(x, -3.320115e-03, ref tj, ref tj1, ref result);
892                if( (double)(result)>(double)(0) )
893                {
894                    result = 0;
895                }
896                return result;
897            }
898            result = -(5.715445e-01*(s-8.000000e+00))-6.845834e+00;
899            return result;
900        }
901
902
903        private static double jbtbl12(double s)
904        {
905            double result = 0;
906            double x = 0;
907            double tj = 0;
908            double tj1 = 0;
909
910            result = 0;
911            if( (double)(s)<=(double)(1.0000) )
912            {
913                x = 2*(s-0.000000)/1.000000-1;
914                tj = 1;
915                tj1 = x;
916                jbcheb(x, -2.736742e-01, ref tj, ref tj1, ref result);
917                jbcheb(x, -3.657836e-01, ref tj, ref tj1, ref result);
918                jbcheb(x, -1.047209e-01, ref tj, ref tj1, ref result);
919                jbcheb(x, -1.319599e-02, ref tj, ref tj1, ref result);
920                jbcheb(x, -5.545631e-04, ref tj, ref tj1, ref result);
921                jbcheb(x, 9.280445e-05, ref tj, ref tj1, ref result);
922                jbcheb(x, 2.815679e-05, ref tj, ref tj1, ref result);
923                jbcheb(x, -2.213519e-05, ref tj, ref tj1, ref result);
924                jbcheb(x, 1.256838e-05, ref tj, ref tj1, ref result);
925                if( (double)(result)>(double)(0) )
926                {
927                    result = 0;
928                }
929                return result;
930            }
931            if( (double)(s)<=(double)(3.0000) )
932            {
933                x = 2*(s-1.000000)/2.000000-1;
934                tj = 1;
935                tj1 = x;
936                jbcheb(x, -2.573947e+00, ref tj, ref tj1, ref result);
937                jbcheb(x, -1.515287e+00, ref tj, ref tj1, ref result);
938                jbcheb(x, 3.611880e-01, ref tj, ref tj1, ref result);
939                jbcheb(x, -3.271311e-02, ref tj, ref tj1, ref result);
940                jbcheb(x, -6.495815e-02, ref tj, ref tj1, ref result);
941                jbcheb(x, 4.141186e-02, ref tj, ref tj1, ref result);
942                jbcheb(x, 7.180886e-04, ref tj, ref tj1, ref result);
943                jbcheb(x, -1.388211e-02, ref tj, ref tj1, ref result);
944                jbcheb(x, 4.890761e-03, ref tj, ref tj1, ref result);
945                jbcheb(x, 3.233175e-03, ref tj, ref tj1, ref result);
946                jbcheb(x, -2.946156e-03, ref tj, ref tj1, ref result);
947                if( (double)(result)>(double)(0) )
948                {
949                    result = 0;
950                }
951                return result;
952            }
953            if( (double)(s)<=(double)(12.0000) )
954            {
955                x = 2*(s-3.000000)/9.000000-1;
956                tj = 1;
957                tj1 = x;
958                jbcheb(x, -5.947819e+00, ref tj, ref tj1, ref result);
959                jbcheb(x, -2.034157e+00, ref tj, ref tj1, ref result);
960                jbcheb(x, 6.878986e-02, ref tj, ref tj1, ref result);
961                jbcheb(x, -4.078603e-02, ref tj, ref tj1, ref result);
962                jbcheb(x, 6.990977e-03, ref tj, ref tj1, ref result);
963                jbcheb(x, -2.866215e-03, ref tj, ref tj1, ref result);
964                jbcheb(x, 3.897866e-03, ref tj, ref tj1, ref result);
965                jbcheb(x, 2.512252e-03, ref tj, ref tj1, ref result);
966                jbcheb(x, 2.073743e-03, ref tj, ref tj1, ref result);
967                jbcheb(x, 3.022621e-03, ref tj, ref tj1, ref result);
968                jbcheb(x, 1.501343e-03, ref tj, ref tj1, ref result);
969                if( (double)(result)>(double)(0) )
970                {
971                    result = 0;
972                }
973                return result;
974            }
975            result = -(2.877243e-01*(s-1.200000e+01))-7.936839e+00;
976            return result;
977        }
978
979
980        private static double jbtbl13(double s)
981        {
982            double result = 0;
983            double x = 0;
984            double tj = 0;
985            double tj1 = 0;
986
987            result = 0;
988            if( (double)(s)<=(double)(1.0000) )
989            {
990                x = 2*(s-0.000000)/1.000000-1;
991                tj = 1;
992                tj1 = x;
993                jbcheb(x, -2.713276e-01, ref tj, ref tj1, ref result);
994                jbcheb(x, -3.557541e-01, ref tj, ref tj1, ref result);
995                jbcheb(x, -9.459092e-02, ref tj, ref tj1, ref result);
996                jbcheb(x, -1.044145e-02, ref tj, ref tj1, ref result);
997                jbcheb(x, -2.546132e-04, ref tj, ref tj1, ref result);
998                jbcheb(x, 1.002374e-04, ref tj, ref tj1, ref result);
999                jbcheb(x, 2.349456e-05, ref tj, ref tj1, ref result);
1000                jbcheb(x, -7.025669e-05, ref tj, ref tj1, ref result);
1001                jbcheb(x, -1.590242e-05, ref tj, ref tj1, ref result);
1002                if( (double)(result)>(double)(0) )
1003                {
1004                    result = 0;
1005                }
1006                return result;
1007            }
1008            if( (double)(s)<=(double)(3.0000) )
1009            {
1010                x = 2*(s-1.000000)/2.000000-1;
1011                tj = 1;
1012                tj1 = x;
1013                jbcheb(x, -2.454383e+00, ref tj, ref tj1, ref result);
1014                jbcheb(x, -1.467539e+00, ref tj, ref tj1, ref result);
1015                jbcheb(x, 3.270774e-01, ref tj, ref tj1, ref result);
1016                jbcheb(x, -8.075763e-03, ref tj, ref tj1, ref result);
1017                jbcheb(x, -6.611647e-02, ref tj, ref tj1, ref result);
1018                jbcheb(x, 2.990785e-02, ref tj, ref tj1, ref result);
1019                jbcheb(x, 8.109212e-03, ref tj, ref tj1, ref result);
1020                jbcheb(x, -1.135031e-02, ref tj, ref tj1, ref result);
1021                jbcheb(x, 5.915919e-04, ref tj, ref tj1, ref result);
1022                jbcheb(x, 3.522390e-03, ref tj, ref tj1, ref result);
1023                jbcheb(x, -1.144701e-03, ref tj, ref tj1, ref result);
1024                if( (double)(result)>(double)(0) )
1025                {
1026                    result = 0;
1027                }
1028                return result;
1029            }
1030            if( (double)(s)<=(double)(13.0000) )
1031            {
1032                x = 2*(s-3.000000)/10.000000-1;
1033                tj = 1;
1034                tj1 = x;
1035                jbcheb(x, -5.736127e+00, ref tj, ref tj1, ref result);
1036                jbcheb(x, -1.920809e+00, ref tj, ref tj1, ref result);
1037                jbcheb(x, 1.175858e-01, ref tj, ref tj1, ref result);
1038                jbcheb(x, -4.002049e-02, ref tj, ref tj1, ref result);
1039                jbcheb(x, 1.158966e-02, ref tj, ref tj1, ref result);
1040                jbcheb(x, -3.157781e-03, ref tj, ref tj1, ref result);
1041                jbcheb(x, 2.762172e-03, ref tj, ref tj1, ref result);
1042                jbcheb(x, 5.780347e-04, ref tj, ref tj1, ref result);
1043                jbcheb(x, -1.193310e-03, ref tj, ref tj1, ref result);
1044                jbcheb(x, -2.442421e-05, ref tj, ref tj1, ref result);
1045                jbcheb(x, 2.547756e-03, ref tj, ref tj1, ref result);
1046                if( (double)(result)>(double)(0) )
1047                {
1048                    result = 0;
1049                }
1050                return result;
1051            }
1052            result = -(2.799944e-01*(s-1.300000e+01))-7.566269e+00;
1053            return result;
1054        }
1055
1056
1057        private static double jbtbl14(double s)
1058        {
1059            double result = 0;
1060            double x = 0;
1061            double tj = 0;
1062            double tj1 = 0;
1063
1064            result = 0;
1065            if( (double)(s)<=(double)(1.0000) )
1066            {
1067                x = 2*(s-0.000000)/1.000000-1;
1068                tj = 1;
1069                tj1 = x;
1070                jbcheb(x, -2.698527e-01, ref tj, ref tj1, ref result);
1071                jbcheb(x, -3.479081e-01, ref tj, ref tj1, ref result);
1072                jbcheb(x, -8.640733e-02, ref tj, ref tj1, ref result);
1073                jbcheb(x, -8.466899e-03, ref tj, ref tj1, ref result);
1074                jbcheb(x, -1.469485e-04, ref tj, ref tj1, ref result);
1075                jbcheb(x, 2.150009e-05, ref tj, ref tj1, ref result);
1076                jbcheb(x, 1.965975e-05, ref tj, ref tj1, ref result);
1077                jbcheb(x, -4.710210e-05, ref tj, ref tj1, ref result);
1078                jbcheb(x, -1.327808e-05, ref tj, ref tj1, ref result);
1079                if( (double)(result)>(double)(0) )
1080                {
1081                    result = 0;
1082                }
1083                return result;
1084            }
1085            if( (double)(s)<=(double)(3.0000) )
1086            {
1087                x = 2*(s-1.000000)/2.000000-1;
1088                tj = 1;
1089                tj1 = x;
1090                jbcheb(x, -2.350359e+00, ref tj, ref tj1, ref result);
1091                jbcheb(x, -1.421365e+00, ref tj, ref tj1, ref result);
1092                jbcheb(x, 2.960468e-01, ref tj, ref tj1, ref result);
1093                jbcheb(x, 1.149167e-02, ref tj, ref tj1, ref result);
1094                jbcheb(x, -6.361109e-02, ref tj, ref tj1, ref result);
1095                jbcheb(x, 1.976022e-02, ref tj, ref tj1, ref result);
1096                jbcheb(x, 1.082700e-02, ref tj, ref tj1, ref result);
1097                jbcheb(x, -8.563328e-03, ref tj, ref tj1, ref result);
1098                jbcheb(x, -1.453123e-03, ref tj, ref tj1, ref result);
1099                jbcheb(x, 2.917559e-03, ref tj, ref tj1, ref result);
1100                jbcheb(x, -1.151067e-05, ref tj, ref tj1, ref result);
1101                if( (double)(result)>(double)(0) )
1102                {
1103                    result = 0;
1104                }
1105                return result;
1106            }
1107            if( (double)(s)<=(double)(15.0000) )
1108            {
1109                x = 2*(s-3.000000)/12.000000-1;
1110                tj = 1;
1111                tj1 = x;
1112                jbcheb(x, -5.746892e+00, ref tj, ref tj1, ref result);
1113                jbcheb(x, -2.010441e+00, ref tj, ref tj1, ref result);
1114                jbcheb(x, 1.566146e-01, ref tj, ref tj1, ref result);
1115                jbcheb(x, -5.129690e-02, ref tj, ref tj1, ref result);
1116                jbcheb(x, 1.929724e-02, ref tj, ref tj1, ref result);
1117                jbcheb(x, -2.524227e-03, ref tj, ref tj1, ref result);
1118                jbcheb(x, 3.192933e-03, ref tj, ref tj1, ref result);
1119                jbcheb(x, -4.254730e-04, ref tj, ref tj1, ref result);
1120                jbcheb(x, 1.620685e-03, ref tj, ref tj1, ref result);
1121                jbcheb(x, 7.289618e-04, ref tj, ref tj1, ref result);
1122                jbcheb(x, -2.112350e-03, ref tj, ref tj1, ref result);
1123                if( (double)(result)>(double)(0) )
1124                {
1125                    result = 0;
1126                }
1127                return result;
1128            }
1129            result = -(2.590621e-01*(s-1.500000e+01))-7.632238e+00;
1130            return result;
1131        }
1132
1133
1134        private static double jbtbl15(double s)
1135        {
1136            double result = 0;
1137            double x = 0;
1138            double tj = 0;
1139            double tj1 = 0;
1140
1141            result = 0;
1142            if( (double)(s)<=(double)(2.0000) )
1143            {
1144                x = 2*(s-0.000000)/2.000000-1;
1145                tj = 1;
1146                tj1 = x;
1147                jbcheb(x, -1.043660e+00, ref tj, ref tj1, ref result);
1148                jbcheb(x, -1.361653e+00, ref tj, ref tj1, ref result);
1149                jbcheb(x, -3.009497e-01, ref tj, ref tj1, ref result);
1150                jbcheb(x, 4.951784e-02, ref tj, ref tj1, ref result);
1151                jbcheb(x, 4.377903e-02, ref tj, ref tj1, ref result);
1152                jbcheb(x, 1.003253e-02, ref tj, ref tj1, ref result);
1153                jbcheb(x, -1.271309e-03, ref tj, ref tj1, ref result);
1154                if( (double)(result)>(double)(0) )
1155                {
1156                    result = 0;
1157                }
1158                return result;
1159            }
1160            if( (double)(s)<=(double)(5.0000) )
1161            {
1162                x = 2*(s-2.000000)/3.000000-1;
1163                tj = 1;
1164                tj1 = x;
1165                jbcheb(x, -3.582778e+00, ref tj, ref tj1, ref result);
1166                jbcheb(x, -8.349578e-01, ref tj, ref tj1, ref result);
1167                jbcheb(x, 9.476514e-02, ref tj, ref tj1, ref result);
1168                jbcheb(x, -2.717385e-02, ref tj, ref tj1, ref result);
1169                jbcheb(x, 1.222591e-02, ref tj, ref tj1, ref result);
1170                jbcheb(x, -6.635124e-03, ref tj, ref tj1, ref result);
1171                jbcheb(x, 2.815993e-03, ref tj, ref tj1, ref result);
1172                if( (double)(result)>(double)(0) )
1173                {
1174                    result = 0;
1175                }
1176                return result;
1177            }
1178            if( (double)(s)<=(double)(17.0000) )
1179            {
1180                x = 2*(s-5.000000)/12.000000-1;
1181                tj = 1;
1182                tj1 = x;
1183                jbcheb(x, -6.115476e+00, ref tj, ref tj1, ref result);
1184                jbcheb(x, -1.655936e+00, ref tj, ref tj1, ref result);
1185                jbcheb(x, 8.404310e-02, ref tj, ref tj1, ref result);
1186                jbcheb(x, -2.663794e-02, ref tj, ref tj1, ref result);
1187                jbcheb(x, 8.868618e-03, ref tj, ref tj1, ref result);
1188                jbcheb(x, 1.381447e-03, ref tj, ref tj1, ref result);
1189                jbcheb(x, 9.444801e-04, ref tj, ref tj1, ref result);
1190                jbcheb(x, -1.581503e-04, ref tj, ref tj1, ref result);
1191                jbcheb(x, -9.468696e-04, ref tj, ref tj1, ref result);
1192                jbcheb(x, 1.728509e-03, ref tj, ref tj1, ref result);
1193                jbcheb(x, 1.206470e-03, ref tj, ref tj1, ref result);
1194                if( (double)(result)>(double)(0) )
1195                {
1196                    result = 0;
1197                }
1198                return result;
1199            }
1200            result = -(1.927937e-01*(s-1.700000e+01))-7.700983e+00;
1201            return result;
1202        }
1203
1204
1205        private static double jbtbl16(double s)
1206        {
1207            double result = 0;
1208            double x = 0;
1209            double tj = 0;
1210            double tj1 = 0;
1211
1212            result = 0;
1213            if( (double)(s)<=(double)(2.0000) )
1214            {
1215                x = 2*(s-0.000000)/2.000000-1;
1216                tj = 1;
1217                tj1 = x;
1218                jbcheb(x, -1.002570e+00, ref tj, ref tj1, ref result);
1219                jbcheb(x, -1.298141e+00, ref tj, ref tj1, ref result);
1220                jbcheb(x, -2.832803e-01, ref tj, ref tj1, ref result);
1221                jbcheb(x, 3.877026e-02, ref tj, ref tj1, ref result);
1222                jbcheb(x, 3.539436e-02, ref tj, ref tj1, ref result);
1223                jbcheb(x, 8.439658e-03, ref tj, ref tj1, ref result);
1224                jbcheb(x, -4.756911e-04, ref tj, ref tj1, ref result);
1225                if( (double)(result)>(double)(0) )
1226                {
1227                    result = 0;
1228                }
1229                return result;
1230            }
1231            if( (double)(s)<=(double)(5.0000) )
1232            {
1233                x = 2*(s-2.000000)/3.000000-1;
1234                tj = 1;
1235                tj1 = x;
1236                jbcheb(x, -3.486198e+00, ref tj, ref tj1, ref result);
1237                jbcheb(x, -8.242944e-01, ref tj, ref tj1, ref result);
1238                jbcheb(x, 1.020002e-01, ref tj, ref tj1, ref result);
1239                jbcheb(x, -3.130531e-02, ref tj, ref tj1, ref result);
1240                jbcheb(x, 1.512373e-02, ref tj, ref tj1, ref result);
1241                jbcheb(x, -8.054876e-03, ref tj, ref tj1, ref result);
1242                jbcheb(x, 3.556839e-03, ref tj, ref tj1, ref result);
1243                if( (double)(result)>(double)(0) )
1244                {
1245                    result = 0;
1246                }
1247                return result;
1248            }
1249            if( (double)(s)<=(double)(20.0000) )
1250            {
1251                x = 2*(s-5.000000)/15.000000-1;
1252                tj = 1;
1253                tj1 = x;
1254                jbcheb(x, -6.241608e+00, ref tj, ref tj1, ref result);
1255                jbcheb(x, -1.832655e+00, ref tj, ref tj1, ref result);
1256                jbcheb(x, 1.340545e-01, ref tj, ref tj1, ref result);
1257                jbcheb(x, -3.361143e-02, ref tj, ref tj1, ref result);
1258                jbcheb(x, 1.283219e-02, ref tj, ref tj1, ref result);
1259                jbcheb(x, 3.484549e-03, ref tj, ref tj1, ref result);
1260                jbcheb(x, 1.805968e-03, ref tj, ref tj1, ref result);
1261                jbcheb(x, -2.057243e-03, ref tj, ref tj1, ref result);
1262                jbcheb(x, -1.454439e-03, ref tj, ref tj1, ref result);
1263                jbcheb(x, -2.177513e-03, ref tj, ref tj1, ref result);
1264                jbcheb(x, -1.819209e-03, ref tj, ref tj1, ref result);
1265                if( (double)(result)>(double)(0) )
1266                {
1267                    result = 0;
1268                }
1269                return result;
1270            }
1271            result = -(2.391580e-01*(s-2.000000e+01))-7.963205e+00;
1272            return result;
1273        }
1274
1275
1276        private static double jbtbl17(double s)
1277        {
1278            double result = 0;
1279            double x = 0;
1280            double tj = 0;
1281            double tj1 = 0;
1282
1283            result = 0;
1284            if( (double)(s)<=(double)(3.0000) )
1285            {
1286                x = 2*(s-0.000000)/3.000000-1;
1287                tj = 1;
1288                tj1 = x;
1289                jbcheb(x, -1.566973e+00, ref tj, ref tj1, ref result);
1290                jbcheb(x, -1.810330e+00, ref tj, ref tj1, ref result);
1291                jbcheb(x, -4.840039e-02, ref tj, ref tj1, ref result);
1292                jbcheb(x, 2.337294e-01, ref tj, ref tj1, ref result);
1293                jbcheb(x, -5.383549e-04, ref tj, ref tj1, ref result);
1294                jbcheb(x, -5.556515e-02, ref tj, ref tj1, ref result);
1295                jbcheb(x, -8.656965e-03, ref tj, ref tj1, ref result);
1296                jbcheb(x, 1.404569e-02, ref tj, ref tj1, ref result);
1297                jbcheb(x, 6.447867e-03, ref tj, ref tj1, ref result);
1298                if( (double)(result)>(double)(0) )
1299                {
1300                    result = 0;
1301                }
1302                return result;
1303            }
1304            if( (double)(s)<=(double)(6.0000) )
1305            {
1306                x = 2*(s-3.000000)/3.000000-1;
1307                tj = 1;
1308                tj1 = x;
1309                jbcheb(x, -3.905684e+00, ref tj, ref tj1, ref result);
1310                jbcheb(x, -6.222920e-01, ref tj, ref tj1, ref result);
1311                jbcheb(x, 4.146667e-02, ref tj, ref tj1, ref result);
1312                jbcheb(x, -4.809176e-03, ref tj, ref tj1, ref result);
1313                jbcheb(x, 1.057028e-03, ref tj, ref tj1, ref result);
1314                jbcheb(x, -1.211838e-04, ref tj, ref tj1, ref result);
1315                jbcheb(x, -4.099683e-04, ref tj, ref tj1, ref result);
1316                jbcheb(x, 1.161105e-04, ref tj, ref tj1, ref result);
1317                jbcheb(x, 2.225465e-04, ref tj, ref tj1, ref result);
1318                if( (double)(result)>(double)(0) )
1319                {
1320                    result = 0;
1321                }
1322                return result;
1323            }
1324            if( (double)(s)<=(double)(24.0000) )
1325            {
1326                x = 2*(s-6.000000)/18.000000-1;
1327                tj = 1;
1328                tj1 = x;
1329                jbcheb(x, -6.594282e+00, ref tj, ref tj1, ref result);
1330                jbcheb(x, -1.917838e+00, ref tj, ref tj1, ref result);
1331                jbcheb(x, 1.455980e-01, ref tj, ref tj1, ref result);
1332                jbcheb(x, -2.999589e-02, ref tj, ref tj1, ref result);
1333                jbcheb(x, 5.604263e-03, ref tj, ref tj1, ref result);
1334                jbcheb(x, -3.484445e-03, ref tj, ref tj1, ref result);
1335                jbcheb(x, -1.819937e-03, ref tj, ref tj1, ref result);
1336                jbcheb(x, -2.930390e-03, ref tj, ref tj1, ref result);
1337                jbcheb(x, 2.771761e-04, ref tj, ref tj1, ref result);
1338                jbcheb(x, -6.232581e-04, ref tj, ref tj1, ref result);
1339                jbcheb(x, -7.029083e-04, ref tj, ref tj1, ref result);
1340                if( (double)(result)>(double)(0) )
1341                {
1342                    result = 0;
1343                }
1344                return result;
1345            }
1346            result = -(2.127771e-01*(s-2.400000e+01))-8.400197e+00;
1347            return result;
1348        }
1349
1350
1351        private static double jbtbl18(double s)
1352        {
1353            double result = 0;
1354            double x = 0;
1355            double tj = 0;
1356            double tj1 = 0;
1357
1358            result = 0;
1359            if( (double)(s)<=(double)(3.0000) )
1360            {
1361                x = 2*(s-0.000000)/3.000000-1;
1362                tj = 1;
1363                tj1 = x;
1364                jbcheb(x, -1.526802e+00, ref tj, ref tj1, ref result);
1365                jbcheb(x, -1.762373e+00, ref tj, ref tj1, ref result);
1366                jbcheb(x, -5.598890e-02, ref tj, ref tj1, ref result);
1367                jbcheb(x, 2.189437e-01, ref tj, ref tj1, ref result);
1368                jbcheb(x, 5.971721e-03, ref tj, ref tj1, ref result);
1369                jbcheb(x, -4.823067e-02, ref tj, ref tj1, ref result);
1370                jbcheb(x, -1.064501e-02, ref tj, ref tj1, ref result);
1371                jbcheb(x, 1.014932e-02, ref tj, ref tj1, ref result);
1372                jbcheb(x, 5.953513e-03, ref tj, ref tj1, ref result);
1373                if( (double)(result)>(double)(0) )
1374                {
1375                    result = 0;
1376                }
1377                return result;
1378            }
1379            if( (double)(s)<=(double)(6.0000) )
1380            {
1381                x = 2*(s-3.000000)/3.000000-1;
1382                tj = 1;
1383                tj1 = x;
1384                jbcheb(x, -3.818669e+00, ref tj, ref tj1, ref result);
1385                jbcheb(x, -6.070918e-01, ref tj, ref tj1, ref result);
1386                jbcheb(x, 4.277196e-02, ref tj, ref tj1, ref result);
1387                jbcheb(x, -4.879817e-03, ref tj, ref tj1, ref result);
1388                jbcheb(x, 6.887357e-04, ref tj, ref tj1, ref result);
1389                jbcheb(x, 1.638451e-05, ref tj, ref tj1, ref result);
1390                jbcheb(x, 1.502800e-04, ref tj, ref tj1, ref result);
1391                jbcheb(x, -3.165796e-05, ref tj, ref tj1, ref result);
1392                jbcheb(x, 5.034960e-05, ref tj, ref tj1, ref result);
1393                if( (double)(result)>(double)(0) )
1394                {
1395                    result = 0;
1396                }
1397                return result;
1398            }
1399            if( (double)(s)<=(double)(20.0000) )
1400            {
1401                x = 2*(s-6.000000)/14.000000-1;
1402                tj = 1;
1403                tj1 = x;
1404                jbcheb(x, -6.010656e+00, ref tj, ref tj1, ref result);
1405                jbcheb(x, -1.496296e+00, ref tj, ref tj1, ref result);
1406                jbcheb(x, 1.002227e-01, ref tj, ref tj1, ref result);
1407                jbcheb(x, -2.338250e-02, ref tj, ref tj1, ref result);
1408                jbcheb(x, 4.137036e-03, ref tj, ref tj1, ref result);
1409                jbcheb(x, -2.586202e-03, ref tj, ref tj1, ref result);
1410                jbcheb(x, -9.736384e-04, ref tj, ref tj1, ref result);
1411                jbcheb(x, 1.332251e-03, ref tj, ref tj1, ref result);
1412                jbcheb(x, 1.877982e-03, ref tj, ref tj1, ref result);
1413                jbcheb(x, -1.160963e-05, ref tj, ref tj1, ref result);
1414                jbcheb(x, -2.547247e-03, ref tj, ref tj1, ref result);
1415                if( (double)(result)>(double)(0) )
1416                {
1417                    result = 0;
1418                }
1419                return result;
1420            }
1421            result = -(1.684623e-01*(s-2.000000e+01))-7.428883e+00;
1422            return result;
1423        }
1424
1425
1426        private static double jbtbl19(double s)
1427        {
1428            double result = 0;
1429            double x = 0;
1430            double tj = 0;
1431            double tj1 = 0;
1432
1433            result = 0;
1434            if( (double)(s)<=(double)(3.0000) )
1435            {
1436                x = 2*(s-0.000000)/3.000000-1;
1437                tj = 1;
1438                tj1 = x;
1439                jbcheb(x, -1.490213e+00, ref tj, ref tj1, ref result);
1440                jbcheb(x, -1.719633e+00, ref tj, ref tj1, ref result);
1441                jbcheb(x, -6.459123e-02, ref tj, ref tj1, ref result);
1442                jbcheb(x, 2.034878e-01, ref tj, ref tj1, ref result);
1443                jbcheb(x, 1.113868e-02, ref tj, ref tj1, ref result);
1444                jbcheb(x, -4.030922e-02, ref tj, ref tj1, ref result);
1445                jbcheb(x, -1.054022e-02, ref tj, ref tj1, ref result);
1446                jbcheb(x, 7.525623e-03, ref tj, ref tj1, ref result);
1447                jbcheb(x, 5.277360e-03, ref tj, ref tj1, ref result);
1448                if( (double)(result)>(double)(0) )
1449                {
1450                    result = 0;
1451                }
1452                return result;
1453            }
1454            if( (double)(s)<=(double)(6.0000) )
1455            {
1456                x = 2*(s-3.000000)/3.000000-1;
1457                tj = 1;
1458                tj1 = x;
1459                jbcheb(x, -3.744750e+00, ref tj, ref tj1, ref result);
1460                jbcheb(x, -5.977749e-01, ref tj, ref tj1, ref result);
1461                jbcheb(x, 4.223716e-02, ref tj, ref tj1, ref result);
1462                jbcheb(x, -5.363889e-03, ref tj, ref tj1, ref result);
1463                jbcheb(x, 5.711774e-04, ref tj, ref tj1, ref result);
1464                jbcheb(x, -5.557257e-04, ref tj, ref tj1, ref result);
1465                jbcheb(x, 4.254794e-04, ref tj, ref tj1, ref result);
1466                jbcheb(x, 9.034207e-05, ref tj, ref tj1, ref result);
1467                jbcheb(x, 5.498107e-05, ref tj, ref tj1, ref result);
1468                if( (double)(result)>(double)(0) )
1469                {
1470                    result = 0;
1471                }
1472                return result;
1473            }
1474            if( (double)(s)<=(double)(20.0000) )
1475            {
1476                x = 2*(s-6.000000)/14.000000-1;
1477                tj = 1;
1478                tj1 = x;
1479                jbcheb(x, -5.872768e+00, ref tj, ref tj1, ref result);
1480                jbcheb(x, -1.430689e+00, ref tj, ref tj1, ref result);
1481                jbcheb(x, 1.136575e-01, ref tj, ref tj1, ref result);
1482                jbcheb(x, -1.726627e-02, ref tj, ref tj1, ref result);
1483                jbcheb(x, 3.421110e-03, ref tj, ref tj1, ref result);
1484                jbcheb(x, -1.581510e-03, ref tj, ref tj1, ref result);
1485                jbcheb(x, -5.559520e-04, ref tj, ref tj1, ref result);
1486                jbcheb(x, -6.838208e-04, ref tj, ref tj1, ref result);
1487                jbcheb(x, 8.428839e-04, ref tj, ref tj1, ref result);
1488                jbcheb(x, -7.170682e-04, ref tj, ref tj1, ref result);
1489                jbcheb(x, -6.006647e-04, ref tj, ref tj1, ref result);
1490                if( (double)(result)>(double)(0) )
1491                {
1492                    result = 0;
1493                }
1494                return result;
1495            }
1496            result = -(1.539373e-01*(s-2.000000e+01))-7.206941e+00;
1497            return result;
1498        }
1499
1500
1501        private static double jbtbl20(double s)
1502        {
1503            double result = 0;
1504            double x = 0;
1505            double tj = 0;
1506            double tj1 = 0;
1507
1508            result = 0;
1509            if( (double)(s)<=(double)(4.0000) )
1510            {
1511                x = 2*(s-0.000000)/4.000000-1;
1512                tj = 1;
1513                tj1 = x;
1514                jbcheb(x, -1.854794e+00, ref tj, ref tj1, ref result);
1515                jbcheb(x, -1.948947e+00, ref tj, ref tj1, ref result);
1516                jbcheb(x, 1.632184e-01, ref tj, ref tj1, ref result);
1517                jbcheb(x, 2.139397e-01, ref tj, ref tj1, ref result);
1518                jbcheb(x, -1.006237e-01, ref tj, ref tj1, ref result);
1519                jbcheb(x, -3.810031e-02, ref tj, ref tj1, ref result);
1520                jbcheb(x, 3.573620e-02, ref tj, ref tj1, ref result);
1521                jbcheb(x, 9.951242e-03, ref tj, ref tj1, ref result);
1522                jbcheb(x, -1.274092e-02, ref tj, ref tj1, ref result);
1523                jbcheb(x, -3.464196e-03, ref tj, ref tj1, ref result);
1524                jbcheb(x, 4.882139e-03, ref tj, ref tj1, ref result);
1525                jbcheb(x, 1.575144e-03, ref tj, ref tj1, ref result);
1526                jbcheb(x, -1.822804e-03, ref tj, ref tj1, ref result);
1527                jbcheb(x, -7.061348e-04, ref tj, ref tj1, ref result);
1528                jbcheb(x, 5.908404e-04, ref tj, ref tj1, ref result);
1529                jbcheb(x, 1.978353e-04, ref tj, ref tj1, ref result);
1530                if( (double)(result)>(double)(0) )
1531                {
1532                    result = 0;
1533                }
1534                return result;
1535            }
1536            if( (double)(s)<=(double)(15.0000) )
1537            {
1538                x = 2*(s-4.000000)/11.000000-1;
1539                tj = 1;
1540                tj1 = x;
1541                jbcheb(x, -5.030989e+00, ref tj, ref tj1, ref result);
1542                jbcheb(x, -1.327151e+00, ref tj, ref tj1, ref result);
1543                jbcheb(x, 1.346404e-01, ref tj, ref tj1, ref result);
1544                jbcheb(x, -2.840051e-02, ref tj, ref tj1, ref result);
1545                jbcheb(x, 7.578551e-03, ref tj, ref tj1, ref result);
1546                jbcheb(x, -9.813886e-04, ref tj, ref tj1, ref result);
1547                jbcheb(x, 5.905973e-05, ref tj, ref tj1, ref result);
1548                jbcheb(x, -5.358489e-04, ref tj, ref tj1, ref result);
1549                jbcheb(x, -3.450795e-04, ref tj, ref tj1, ref result);
1550                jbcheb(x, -6.941157e-04, ref tj, ref tj1, ref result);
1551                jbcheb(x, -7.432418e-04, ref tj, ref tj1, ref result);
1552                jbcheb(x, -2.070537e-04, ref tj, ref tj1, ref result);
1553                jbcheb(x, 9.375654e-04, ref tj, ref tj1, ref result);
1554                jbcheb(x, 5.367378e-04, ref tj, ref tj1, ref result);
1555                jbcheb(x, 9.890859e-04, ref tj, ref tj1, ref result);
1556                jbcheb(x, 6.679782e-04, ref tj, ref tj1, ref result);
1557                if( (double)(result)>(double)(0) )
1558                {
1559                    result = 0;
1560                }
1561                return result;
1562            }
1563            if( (double)(s)<=(double)(25.0000) )
1564            {
1565                x = 2*(s-15.000000)/10.000000-1;
1566                tj = 1;
1567                tj1 = x;
1568                jbcheb(x, -7.015854e+00, ref tj, ref tj1, ref result);
1569                jbcheb(x, -7.487737e-01, ref tj, ref tj1, ref result);
1570                jbcheb(x, 2.244254e-02, ref tj, ref tj1, ref result);
1571                if( (double)(result)>(double)(0) )
1572                {
1573                    result = 0;
1574                }
1575                return result;
1576            }
1577            result = -(1.318007e-01*(s-2.500000e+01))-7.742185e+00;
1578            return result;
1579        }
1580
1581
1582        private static double jbtbl30(double s)
1583        {
1584            double result = 0;
1585            double x = 0;
1586            double tj = 0;
1587            double tj1 = 0;
1588
1589            result = 0;
1590            if( (double)(s)<=(double)(4.0000) )
1591            {
1592                x = 2*(s-0.000000)/4.000000-1;
1593                tj = 1;
1594                tj1 = x;
1595                jbcheb(x, -1.630822e+00, ref tj, ref tj1, ref result);
1596                jbcheb(x, -1.724298e+00, ref tj, ref tj1, ref result);
1597                jbcheb(x, 7.872756e-02, ref tj, ref tj1, ref result);
1598                jbcheb(x, 1.658268e-01, ref tj, ref tj1, ref result);
1599                jbcheb(x, -3.573597e-02, ref tj, ref tj1, ref result);
1600                jbcheb(x, -2.994157e-02, ref tj, ref tj1, ref result);
1601                jbcheb(x, 5.994825e-03, ref tj, ref tj1, ref result);
1602                jbcheb(x, 7.394303e-03, ref tj, ref tj1, ref result);
1603                jbcheb(x, -5.785029e-04, ref tj, ref tj1, ref result);
1604                jbcheb(x, -1.990264e-03, ref tj, ref tj1, ref result);
1605                jbcheb(x, -1.037838e-04, ref tj, ref tj1, ref result);
1606                jbcheb(x, 6.755546e-04, ref tj, ref tj1, ref result);
1607                jbcheb(x, 1.774473e-04, ref tj, ref tj1, ref result);
1608                jbcheb(x, -2.821395e-04, ref tj, ref tj1, ref result);
1609                jbcheb(x, -1.392603e-04, ref tj, ref tj1, ref result);
1610                jbcheb(x, 1.353313e-04, ref tj, ref tj1, ref result);
1611                if( (double)(result)>(double)(0) )
1612                {
1613                    result = 0;
1614                }
1615                return result;
1616            }
1617            if( (double)(s)<=(double)(15.0000) )
1618            {
1619                x = 2*(s-4.000000)/11.000000-1;
1620                tj = 1;
1621                tj1 = x;
1622                jbcheb(x, -4.539322e+00, ref tj, ref tj1, ref result);
1623                jbcheb(x, -1.197018e+00, ref tj, ref tj1, ref result);
1624                jbcheb(x, 1.396848e-01, ref tj, ref tj1, ref result);
1625                jbcheb(x, -2.804293e-02, ref tj, ref tj1, ref result);
1626                jbcheb(x, 6.867928e-03, ref tj, ref tj1, ref result);
1627                jbcheb(x, -2.768758e-03, ref tj, ref tj1, ref result);
1628                jbcheb(x, 5.211792e-04, ref tj, ref tj1, ref result);
1629                jbcheb(x, 4.925799e-04, ref tj, ref tj1, ref result);
1630                jbcheb(x, 5.046235e-04, ref tj, ref tj1, ref result);
1631                jbcheb(x, -9.536469e-05, ref tj, ref tj1, ref result);
1632                jbcheb(x, -6.489642e-04, ref tj, ref tj1, ref result);
1633                if( (double)(result)>(double)(0) )
1634                {
1635                    result = 0;
1636                }
1637                return result;
1638            }
1639            if( (double)(s)<=(double)(25.0000) )
1640            {
1641                x = 2*(s-15.000000)/10.000000-1;
1642                tj = 1;
1643                tj1 = x;
1644                jbcheb(x, -6.263462e+00, ref tj, ref tj1, ref result);
1645                jbcheb(x, -6.177316e-01, ref tj, ref tj1, ref result);
1646                jbcheb(x, 2.590637e-02, ref tj, ref tj1, ref result);
1647                if( (double)(result)>(double)(0) )
1648                {
1649                    result = 0;
1650                }
1651                return result;
1652            }
1653            result = -(1.028212e-01*(s-2.500000e+01))-6.855288e+00;
1654            return result;
1655        }
1656
1657
1658        private static double jbtbl50(double s)
1659        {
1660            double result = 0;
1661            double x = 0;
1662            double tj = 0;
1663            double tj1 = 0;
1664
1665            result = 0;
1666            if( (double)(s)<=(double)(4.0000) )
1667            {
1668                x = 2*(s-0.000000)/4.000000-1;
1669                tj = 1;
1670                tj1 = x;
1671                jbcheb(x, -1.436279e+00, ref tj, ref tj1, ref result);
1672                jbcheb(x, -1.519711e+00, ref tj, ref tj1, ref result);
1673                jbcheb(x, 1.148699e-02, ref tj, ref tj1, ref result);
1674                jbcheb(x, 1.001204e-01, ref tj, ref tj1, ref result);
1675                jbcheb(x, -3.207620e-03, ref tj, ref tj1, ref result);
1676                jbcheb(x, -1.034778e-02, ref tj, ref tj1, ref result);
1677                jbcheb(x, -1.220322e-03, ref tj, ref tj1, ref result);
1678                jbcheb(x, 1.033260e-03, ref tj, ref tj1, ref result);
1679                jbcheb(x, 2.588280e-04, ref tj, ref tj1, ref result);
1680                jbcheb(x, -1.851653e-04, ref tj, ref tj1, ref result);
1681                jbcheb(x, -1.287733e-04, ref tj, ref tj1, ref result);
1682                if( (double)(result)>(double)(0) )
1683                {
1684                    result = 0;
1685                }
1686                return result;
1687            }
1688            if( (double)(s)<=(double)(15.0000) )
1689            {
1690                x = 2*(s-4.000000)/11.000000-1;
1691                tj = 1;
1692                tj1 = x;
1693                jbcheb(x, -4.234645e+00, ref tj, ref tj1, ref result);
1694                jbcheb(x, -1.189127e+00, ref tj, ref tj1, ref result);
1695                jbcheb(x, 1.429738e-01, ref tj, ref tj1, ref result);
1696                jbcheb(x, -3.058822e-02, ref tj, ref tj1, ref result);
1697                jbcheb(x, 9.086776e-03, ref tj, ref tj1, ref result);
1698                jbcheb(x, -1.445783e-03, ref tj, ref tj1, ref result);
1699                jbcheb(x, 1.311671e-03, ref tj, ref tj1, ref result);
1700                jbcheb(x, -7.261298e-04, ref tj, ref tj1, ref result);
1701                jbcheb(x, 6.496987e-04, ref tj, ref tj1, ref result);
1702                jbcheb(x, 2.605249e-04, ref tj, ref tj1, ref result);
1703                jbcheb(x, 8.162282e-04, ref tj, ref tj1, ref result);
1704                if( (double)(result)>(double)(0) )
1705                {
1706                    result = 0;
1707                }
1708                return result;
1709            }
1710            if( (double)(s)<=(double)(25.0000) )
1711            {
1712                x = 2*(s-15.000000)/10.000000-1;
1713                tj = 1;
1714                tj1 = x;
1715                jbcheb(x, -5.921095e+00, ref tj, ref tj1, ref result);
1716                jbcheb(x, -5.888603e-01, ref tj, ref tj1, ref result);
1717                jbcheb(x, 3.080113e-02, ref tj, ref tj1, ref result);
1718                if( (double)(result)>(double)(0) )
1719                {
1720                    result = 0;
1721                }
1722                return result;
1723            }
1724            result = -(9.313116e-02*(s-2.500000e+01))-6.479154e+00;
1725            return result;
1726        }
1727
1728
1729        private static double jbtbl65(double s)
1730        {
1731            double result = 0;
1732            double x = 0;
1733            double tj = 0;
1734            double tj1 = 0;
1735
1736            result = 0;
1737            if( (double)(s)<=(double)(4.0000) )
1738            {
1739                x = 2*(s-0.000000)/4.000000-1;
1740                tj = 1;
1741                tj1 = x;
1742                jbcheb(x, -1.360024e+00, ref tj, ref tj1, ref result);
1743                jbcheb(x, -1.434631e+00, ref tj, ref tj1, ref result);
1744                jbcheb(x, -6.514580e-03, ref tj, ref tj1, ref result);
1745                jbcheb(x, 7.332038e-02, ref tj, ref tj1, ref result);
1746                jbcheb(x, 1.158197e-03, ref tj, ref tj1, ref result);
1747                jbcheb(x, -5.121233e-03, ref tj, ref tj1, ref result);
1748                jbcheb(x, -1.051056e-03, ref tj, ref tj1, ref result);
1749                if( (double)(result)>(double)(0) )
1750                {
1751                    result = 0;
1752                }
1753                return result;
1754            }
1755            if( (double)(s)<=(double)(15.0000) )
1756            {
1757                x = 2*(s-4.000000)/11.000000-1;
1758                tj = 1;
1759                tj1 = x;
1760                jbcheb(x, -4.148601e+00, ref tj, ref tj1, ref result);
1761                jbcheb(x, -1.214233e+00, ref tj, ref tj1, ref result);
1762                jbcheb(x, 1.487977e-01, ref tj, ref tj1, ref result);
1763                jbcheb(x, -3.424720e-02, ref tj, ref tj1, ref result);
1764                jbcheb(x, 1.116715e-02, ref tj, ref tj1, ref result);
1765                jbcheb(x, -4.043152e-03, ref tj, ref tj1, ref result);
1766                jbcheb(x, 1.718149e-03, ref tj, ref tj1, ref result);
1767                jbcheb(x, -1.313701e-03, ref tj, ref tj1, ref result);
1768                jbcheb(x, 3.097305e-04, ref tj, ref tj1, ref result);
1769                jbcheb(x, 2.181031e-04, ref tj, ref tj1, ref result);
1770                jbcheb(x, 1.256975e-04, ref tj, ref tj1, ref result);
1771                if( (double)(result)>(double)(0) )
1772                {
1773                    result = 0;
1774                }
1775                return result;
1776            }
1777            if( (double)(s)<=(double)(25.0000) )
1778            {
1779                x = 2*(s-15.000000)/10.000000-1;
1780                tj = 1;
1781                tj1 = x;
1782                jbcheb(x, -5.858951e+00, ref tj, ref tj1, ref result);
1783                jbcheb(x, -5.895179e-01, ref tj, ref tj1, ref result);
1784                jbcheb(x, 2.933237e-02, ref tj, ref tj1, ref result);
1785                if( (double)(result)>(double)(0) )
1786                {
1787                    result = 0;
1788                }
1789                return result;
1790            }
1791            result = -(9.443768e-02*(s-2.500000e+01))-6.419137e+00;
1792            return result;
1793        }
1794
1795
1796        private static double jbtbl100(double s)
1797        {
1798            double result = 0;
1799            double x = 0;
1800            double tj = 0;
1801            double tj1 = 0;
1802
1803            result = 0;
1804            if( (double)(s)<=(double)(4.0000) )
1805            {
1806                x = 2*(s-0.000000)/4.000000-1;
1807                tj = 1;
1808                tj1 = x;
1809                jbcheb(x, -1.257021e+00, ref tj, ref tj1, ref result);
1810                jbcheb(x, -1.313418e+00, ref tj, ref tj1, ref result);
1811                jbcheb(x, -1.628931e-02, ref tj, ref tj1, ref result);
1812                jbcheb(x, 4.264287e-02, ref tj, ref tj1, ref result);
1813                jbcheb(x, 1.518487e-03, ref tj, ref tj1, ref result);
1814                jbcheb(x, -1.499826e-03, ref tj, ref tj1, ref result);
1815                jbcheb(x, -4.836044e-04, ref tj, ref tj1, ref result);
1816                if( (double)(result)>(double)(0) )
1817                {
1818                    result = 0;
1819                }
1820                return result;
1821            }
1822            if( (double)(s)<=(double)(15.0000) )
1823            {
1824                x = 2*(s-4.000000)/11.000000-1;
1825                tj = 1;
1826                tj1 = x;
1827                jbcheb(x, -4.056508e+00, ref tj, ref tj1, ref result);
1828                jbcheb(x, -1.279690e+00, ref tj, ref tj1, ref result);
1829                jbcheb(x, 1.665746e-01, ref tj, ref tj1, ref result);
1830                jbcheb(x, -4.290012e-02, ref tj, ref tj1, ref result);
1831                jbcheb(x, 1.487632e-02, ref tj, ref tj1, ref result);
1832                jbcheb(x, -5.704465e-03, ref tj, ref tj1, ref result);
1833                jbcheb(x, 2.211669e-03, ref tj, ref tj1, ref result);
1834                if( (double)(result)>(double)(0) )
1835                {
1836                    result = 0;
1837                }
1838                return result;
1839            }
1840            if( (double)(s)<=(double)(25.0000) )
1841            {
1842                x = 2*(s-15.000000)/10.000000-1;
1843                tj = 1;
1844                tj1 = x;
1845                jbcheb(x, -5.866099e+00, ref tj, ref tj1, ref result);
1846                jbcheb(x, -6.399767e-01, ref tj, ref tj1, ref result);
1847                jbcheb(x, 2.498208e-02, ref tj, ref tj1, ref result);
1848                if( (double)(result)>(double)(0) )
1849                {
1850                    result = 0;
1851                }
1852                return result;
1853            }
1854            result = -(1.080097e-01*(s-2.500000e+01))-6.481094e+00;
1855            return result;
1856        }
1857
1858
1859        private static double jbtbl130(double s)
1860        {
1861            double result = 0;
1862            double x = 0;
1863            double tj = 0;
1864            double tj1 = 0;
1865
1866            result = 0;
1867            if( (double)(s)<=(double)(4.0000) )
1868            {
1869                x = 2*(s-0.000000)/4.000000-1;
1870                tj = 1;
1871                tj1 = x;
1872                jbcheb(x, -1.207999e+00, ref tj, ref tj1, ref result);
1873                jbcheb(x, -1.253864e+00, ref tj, ref tj1, ref result);
1874                jbcheb(x, -1.618032e-02, ref tj, ref tj1, ref result);
1875                jbcheb(x, 3.112729e-02, ref tj, ref tj1, ref result);
1876                jbcheb(x, 1.210546e-03, ref tj, ref tj1, ref result);
1877                jbcheb(x, -4.732602e-04, ref tj, ref tj1, ref result);
1878                jbcheb(x, -2.410527e-04, ref tj, ref tj1, ref result);
1879                if( (double)(result)>(double)(0) )
1880                {
1881                    result = 0;
1882                }
1883                return result;
1884            }
1885            if( (double)(s)<=(double)(15.0000) )
1886            {
1887                x = 2*(s-4.000000)/11.000000-1;
1888                tj = 1;
1889                tj1 = x;
1890                jbcheb(x, -4.026324e+00, ref tj, ref tj1, ref result);
1891                jbcheb(x, -1.331990e+00, ref tj, ref tj1, ref result);
1892                jbcheb(x, 1.779129e-01, ref tj, ref tj1, ref result);
1893                jbcheb(x, -4.674749e-02, ref tj, ref tj1, ref result);
1894                jbcheb(x, 1.669077e-02, ref tj, ref tj1, ref result);
1895                jbcheb(x, -5.679136e-03, ref tj, ref tj1, ref result);
1896                jbcheb(x, 8.833221e-04, ref tj, ref tj1, ref result);
1897                if( (double)(result)>(double)(0) )
1898                {
1899                    result = 0;
1900                }
1901                return result;
1902            }
1903            if( (double)(s)<=(double)(25.0000) )
1904            {
1905                x = 2*(s-15.000000)/10.000000-1;
1906                tj = 1;
1907                tj1 = x;
1908                jbcheb(x, -5.893951e+00, ref tj, ref tj1, ref result);
1909                jbcheb(x, -6.475304e-01, ref tj, ref tj1, ref result);
1910                jbcheb(x, 3.116734e-02, ref tj, ref tj1, ref result);
1911                if( (double)(result)>(double)(0) )
1912                {
1913                    result = 0;
1914                }
1915                return result;
1916            }
1917            result = -(1.045722e-01*(s-2.500000e+01))-6.510314e+00;
1918            return result;
1919        }
1920
1921
1922        private static double jbtbl200(double s)
1923        {
1924            double result = 0;
1925            double x = 0;
1926            double tj = 0;
1927            double tj1 = 0;
1928
1929            result = 0;
1930            if( (double)(s)<=(double)(4.0000) )
1931            {
1932                x = 2*(s-0.000000)/4.000000-1;
1933                tj = 1;
1934                tj1 = x;
1935                jbcheb(x, -1.146155e+00, ref tj, ref tj1, ref result);
1936                jbcheb(x, -1.177398e+00, ref tj, ref tj1, ref result);
1937                jbcheb(x, -1.297970e-02, ref tj, ref tj1, ref result);
1938                jbcheb(x, 1.869745e-02, ref tj, ref tj1, ref result);
1939                jbcheb(x, 1.717288e-04, ref tj, ref tj1, ref result);
1940                jbcheb(x, -1.982108e-04, ref tj, ref tj1, ref result);
1941                jbcheb(x, 6.427636e-05, ref tj, ref tj1, ref result);
1942                if( (double)(result)>(double)(0) )
1943                {
1944                    result = 0;
1945                }
1946                return result;
1947            }
1948            if( (double)(s)<=(double)(15.0000) )
1949            {
1950                x = 2*(s-4.000000)/11.000000-1;
1951                tj = 1;
1952                tj1 = x;
1953                jbcheb(x, -4.034235e+00, ref tj, ref tj1, ref result);
1954                jbcheb(x, -1.455006e+00, ref tj, ref tj1, ref result);
1955                jbcheb(x, 1.942996e-01, ref tj, ref tj1, ref result);
1956                jbcheb(x, -4.973795e-02, ref tj, ref tj1, ref result);
1957                jbcheb(x, 1.418812e-02, ref tj, ref tj1, ref result);
1958                jbcheb(x, -3.156778e-03, ref tj, ref tj1, ref result);
1959                jbcheb(x, 4.896705e-05, ref tj, ref tj1, ref result);
1960                if( (double)(result)>(double)(0) )
1961                {
1962                    result = 0;
1963                }
1964                return result;
1965            }
1966            if( (double)(s)<=(double)(25.0000) )
1967            {
1968                x = 2*(s-15.000000)/10.000000-1;
1969                tj = 1;
1970                tj1 = x;
1971                jbcheb(x, -6.086071e+00, ref tj, ref tj1, ref result);
1972                jbcheb(x, -7.152176e-01, ref tj, ref tj1, ref result);
1973                jbcheb(x, 3.725393e-02, ref tj, ref tj1, ref result);
1974                if( (double)(result)>(double)(0) )
1975                {
1976                    result = 0;
1977                }
1978                return result;
1979            }
1980            result = -(1.132404e-01*(s-2.500000e+01))-6.764034e+00;
1981            return result;
1982        }
1983
1984
1985        private static double jbtbl301(double s)
1986        {
1987            double result = 0;
1988            double x = 0;
1989            double tj = 0;
1990            double tj1 = 0;
1991
1992            result = 0;
1993            if( (double)(s)<=(double)(4.0000) )
1994            {
1995                x = 2*(s-0.000000)/4.000000-1;
1996                tj = 1;
1997                tj1 = x;
1998                jbcheb(x, -1.104290e+00, ref tj, ref tj1, ref result);
1999                jbcheb(x, -1.125800e+00, ref tj, ref tj1, ref result);
2000                jbcheb(x, -9.595847e-03, ref tj, ref tj1, ref result);
2001                jbcheb(x, 1.219666e-02, ref tj, ref tj1, ref result);
2002                jbcheb(x, 1.502210e-04, ref tj, ref tj1, ref result);
2003                jbcheb(x, -6.414543e-05, ref tj, ref tj1, ref result);
2004                jbcheb(x, 6.754115e-05, ref tj, ref tj1, ref result);
2005                if( (double)(result)>(double)(0) )
2006                {
2007                    result = 0;
2008                }
2009                return result;
2010            }
2011            if( (double)(s)<=(double)(15.0000) )
2012            {
2013                x = 2*(s-4.000000)/11.000000-1;
2014                tj = 1;
2015                tj1 = x;
2016                jbcheb(x, -4.065955e+00, ref tj, ref tj1, ref result);
2017                jbcheb(x, -1.582060e+00, ref tj, ref tj1, ref result);
2018                jbcheb(x, 2.004472e-01, ref tj, ref tj1, ref result);
2019                jbcheb(x, -4.709092e-02, ref tj, ref tj1, ref result);
2020                jbcheb(x, 1.105779e-02, ref tj, ref tj1, ref result);
2021                jbcheb(x, 1.197391e-03, ref tj, ref tj1, ref result);
2022                jbcheb(x, -8.386780e-04, ref tj, ref tj1, ref result);
2023                if( (double)(result)>(double)(0) )
2024                {
2025                    result = 0;
2026                }
2027                return result;
2028            }
2029            if( (double)(s)<=(double)(25.0000) )
2030            {
2031                x = 2*(s-15.000000)/10.000000-1;
2032                tj = 1;
2033                tj1 = x;
2034                jbcheb(x, -6.311384e+00, ref tj, ref tj1, ref result);
2035                jbcheb(x, -7.918763e-01, ref tj, ref tj1, ref result);
2036                jbcheb(x, 3.626584e-02, ref tj, ref tj1, ref result);
2037                if( (double)(result)>(double)(0) )
2038                {
2039                    result = 0;
2040                }
2041                return result;
2042            }
2043            result = -(1.293626e-01*(s-2.500000e+01))-7.066995e+00;
2044            return result;
2045        }
2046
2047
2048        private static double jbtbl501(double s)
2049        {
2050            double result = 0;
2051            double x = 0;
2052            double tj = 0;
2053            double tj1 = 0;
2054
2055            result = 0;
2056            if( (double)(s)<=(double)(4.0000) )
2057            {
2058                x = 2*(s-0.000000)/4.000000-1;
2059                tj = 1;
2060                tj1 = x;
2061                jbcheb(x, -1.067426e+00, ref tj, ref tj1, ref result);
2062                jbcheb(x, -1.079765e+00, ref tj, ref tj1, ref result);
2063                jbcheb(x, -5.463005e-03, ref tj, ref tj1, ref result);
2064                jbcheb(x, 6.875659e-03, ref tj, ref tj1, ref result);
2065                if( (double)(result)>(double)(0) )
2066                {
2067                    result = 0;
2068                }
2069                return result;
2070            }
2071            if( (double)(s)<=(double)(15.0000) )
2072            {
2073                x = 2*(s-4.000000)/11.000000-1;
2074                tj = 1;
2075                tj1 = x;
2076                jbcheb(x, -4.127574e+00, ref tj, ref tj1, ref result);
2077                jbcheb(x, -1.740694e+00, ref tj, ref tj1, ref result);
2078                jbcheb(x, 2.044502e-01, ref tj, ref tj1, ref result);
2079                jbcheb(x, -3.746714e-02, ref tj, ref tj1, ref result);
2080                jbcheb(x, 3.810594e-04, ref tj, ref tj1, ref result);
2081                jbcheb(x, 1.197111e-03, ref tj, ref tj1, ref result);
2082                if( (double)(result)>(double)(0) )
2083                {
2084                    result = 0;
2085                }
2086                return result;
2087            }
2088            if( (double)(s)<=(double)(25.0000) )
2089            {
2090                x = 2*(s-15.000000)/10.000000-1;
2091                tj = 1;
2092                tj1 = x;
2093                jbcheb(x, -6.628194e+00, ref tj, ref tj1, ref result);
2094                jbcheb(x, -8.846221e-01, ref tj, ref tj1, ref result);
2095                jbcheb(x, 4.386405e-02, ref tj, ref tj1, ref result);
2096                if( (double)(result)>(double)(0) )
2097                {
2098                    result = 0;
2099                }
2100                return result;
2101            }
2102            result = -(1.418332e-01*(s-2.500000e+01))-7.468952e+00;
2103            return result;
2104        }
2105
2106
2107        private static double jbtbl701(double s)
2108        {
2109            double result = 0;
2110            double x = 0;
2111            double tj = 0;
2112            double tj1 = 0;
2113
2114            result = 0;
2115            if( (double)(s)<=(double)(4.0000) )
2116            {
2117                x = 2*(s-0.000000)/4.000000-1;
2118                tj = 1;
2119                tj1 = x;
2120                jbcheb(x, -1.050999e+00, ref tj, ref tj1, ref result);
2121                jbcheb(x, -1.059769e+00, ref tj, ref tj1, ref result);
2122                jbcheb(x, -3.922680e-03, ref tj, ref tj1, ref result);
2123                jbcheb(x, 4.847054e-03, ref tj, ref tj1, ref result);
2124                if( (double)(result)>(double)(0) )
2125                {
2126                    result = 0;
2127                }
2128                return result;
2129            }
2130            if( (double)(s)<=(double)(15.0000) )
2131            {
2132                x = 2*(s-4.000000)/11.000000-1;
2133                tj = 1;
2134                tj1 = x;
2135                jbcheb(x, -4.192182e+00, ref tj, ref tj1, ref result);
2136                jbcheb(x, -1.860007e+00, ref tj, ref tj1, ref result);
2137                jbcheb(x, 1.963942e-01, ref tj, ref tj1, ref result);
2138                jbcheb(x, -2.838711e-02, ref tj, ref tj1, ref result);
2139                jbcheb(x, -2.893112e-04, ref tj, ref tj1, ref result);
2140                jbcheb(x, 2.159788e-03, ref tj, ref tj1, ref result);
2141                if( (double)(result)>(double)(0) )
2142                {
2143                    result = 0;
2144                }
2145                return result;
2146            }
2147            if( (double)(s)<=(double)(25.0000) )
2148            {
2149                x = 2*(s-15.000000)/10.000000-1;
2150                tj = 1;
2151                tj1 = x;
2152                jbcheb(x, -6.917851e+00, ref tj, ref tj1, ref result);
2153                jbcheb(x, -9.817020e-01, ref tj, ref tj1, ref result);
2154                jbcheb(x, 5.383727e-02, ref tj, ref tj1, ref result);
2155                if( (double)(result)>(double)(0) )
2156                {
2157                    result = 0;
2158                }
2159                return result;
2160            }
2161            result = -(1.532706e-01*(s-2.500000e+01))-7.845715e+00;
2162            return result;
2163        }
2164
2165
2166        private static double jbtbl1401(double s)
2167        {
2168            double result = 0;
2169            double x = 0;
2170            double tj = 0;
2171            double tj1 = 0;
2172
2173            result = 0;
2174            if( (double)(s)<=(double)(4.0000) )
2175            {
2176                x = 2*(s-0.000000)/4.000000-1;
2177                tj = 1;
2178                tj1 = x;
2179                jbcheb(x, -1.026266e+00, ref tj, ref tj1, ref result);
2180                jbcheb(x, -1.030061e+00, ref tj, ref tj1, ref result);
2181                jbcheb(x, -1.259222e-03, ref tj, ref tj1, ref result);
2182                jbcheb(x, 2.536254e-03, ref tj, ref tj1, ref result);
2183                if( (double)(result)>(double)(0) )
2184                {
2185                    result = 0;
2186                }
2187                return result;
2188            }
2189            if( (double)(s)<=(double)(15.0000) )
2190            {
2191                x = 2*(s-4.000000)/11.000000-1;
2192                tj = 1;
2193                tj1 = x;
2194                jbcheb(x, -4.329849e+00, ref tj, ref tj1, ref result);
2195                jbcheb(x, -2.095443e+00, ref tj, ref tj1, ref result);
2196                jbcheb(x, 1.759363e-01, ref tj, ref tj1, ref result);
2197                jbcheb(x, -7.751359e-03, ref tj, ref tj1, ref result);
2198                jbcheb(x, -6.124368e-03, ref tj, ref tj1, ref result);
2199                jbcheb(x, -1.793114e-03, ref tj, ref tj1, ref result);
2200                if( (double)(result)>(double)(0) )
2201                {
2202                    result = 0;
2203                }
2204                return result;
2205            }
2206            if( (double)(s)<=(double)(25.0000) )
2207            {
2208                x = 2*(s-15.000000)/10.000000-1;
2209                tj = 1;
2210                tj1 = x;
2211                jbcheb(x, -7.544330e+00, ref tj, ref tj1, ref result);
2212                jbcheb(x, -1.225382e+00, ref tj, ref tj1, ref result);
2213                jbcheb(x, 5.392349e-02, ref tj, ref tj1, ref result);
2214                if( (double)(result)>(double)(0) )
2215                {
2216                    result = 0;
2217                }
2218                return result;
2219            }
2220            result = -(2.019375e-01*(s-2.500000e+01))-8.715788e+00;
2221            return result;
2222        }
2223
2224
2225        private static void jbcheb(double x,
2226            double c,
2227            ref double tj,
2228            ref double tj1,
2229            ref double r)
2230        {
2231            double t = 0;
2232
2233            r = r+c*tj;
2234            t = 2*x*tj1-tj;
2235            tj = tj1;
2236            tj1 = t;
2237        }
2238    }
2239}
Note: See TracBrowser for help on using the repository browser.