Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/2.1.2.2591/ALGLIB-2.1.2.2591/jarquebera.cs @ 2645

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

extracted external libraries and adapted dependent plugins (ticket #837)

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