alglib 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. data/History.txt +7 -0
  2. data/Manifest.txt +253 -0
  3. data/README.txt +33 -0
  4. data/Rakefile +27 -0
  5. data/ext/Rakefile +24 -0
  6. data/ext/alglib.i +24 -0
  7. data/ext/alglib/Makefile +157 -0
  8. data/ext/alglib/airyf.cpp +372 -0
  9. data/ext/alglib/airyf.h +81 -0
  10. data/ext/alglib/alglib.cpp +8558 -0
  11. data/ext/alglib/alglib_util.cpp +19 -0
  12. data/ext/alglib/alglib_util.h +14 -0
  13. data/ext/alglib/ap.cpp +877 -0
  14. data/ext/alglib/ap.english.html +364 -0
  15. data/ext/alglib/ap.h +666 -0
  16. data/ext/alglib/ap.russian.html +442 -0
  17. data/ext/alglib/apvt.h +754 -0
  18. data/ext/alglib/bdss.cpp +1500 -0
  19. data/ext/alglib/bdss.h +251 -0
  20. data/ext/alglib/bdsvd.cpp +1339 -0
  21. data/ext/alglib/bdsvd.h +164 -0
  22. data/ext/alglib/bessel.cpp +1226 -0
  23. data/ext/alglib/bessel.h +331 -0
  24. data/ext/alglib/betaf.cpp +105 -0
  25. data/ext/alglib/betaf.h +74 -0
  26. data/ext/alglib/bidiagonal.cpp +1328 -0
  27. data/ext/alglib/bidiagonal.h +350 -0
  28. data/ext/alglib/binomialdistr.cpp +247 -0
  29. data/ext/alglib/binomialdistr.h +153 -0
  30. data/ext/alglib/blas.cpp +576 -0
  31. data/ext/alglib/blas.h +132 -0
  32. data/ext/alglib/cblas.cpp +226 -0
  33. data/ext/alglib/cblas.h +57 -0
  34. data/ext/alglib/cdet.cpp +138 -0
  35. data/ext/alglib/cdet.h +92 -0
  36. data/ext/alglib/chebyshev.cpp +216 -0
  37. data/ext/alglib/chebyshev.h +76 -0
  38. data/ext/alglib/chisquaredistr.cpp +157 -0
  39. data/ext/alglib/chisquaredistr.h +144 -0
  40. data/ext/alglib/cholesky.cpp +285 -0
  41. data/ext/alglib/cholesky.h +86 -0
  42. data/ext/alglib/cinverse.cpp +298 -0
  43. data/ext/alglib/cinverse.h +111 -0
  44. data/ext/alglib/clu.cpp +337 -0
  45. data/ext/alglib/clu.h +120 -0
  46. data/ext/alglib/correlation.cpp +280 -0
  47. data/ext/alglib/correlation.h +77 -0
  48. data/ext/alglib/correlationtests.cpp +726 -0
  49. data/ext/alglib/correlationtests.h +134 -0
  50. data/ext/alglib/crcond.cpp +826 -0
  51. data/ext/alglib/crcond.h +148 -0
  52. data/ext/alglib/creflections.cpp +310 -0
  53. data/ext/alglib/creflections.h +165 -0
  54. data/ext/alglib/csolve.cpp +312 -0
  55. data/ext/alglib/csolve.h +99 -0
  56. data/ext/alglib/ctrinverse.cpp +387 -0
  57. data/ext/alglib/ctrinverse.h +98 -0
  58. data/ext/alglib/ctrlinsolve.cpp +297 -0
  59. data/ext/alglib/ctrlinsolve.h +81 -0
  60. data/ext/alglib/dawson.cpp +234 -0
  61. data/ext/alglib/dawson.h +74 -0
  62. data/ext/alglib/descriptivestatistics.cpp +436 -0
  63. data/ext/alglib/descriptivestatistics.h +112 -0
  64. data/ext/alglib/det.cpp +140 -0
  65. data/ext/alglib/det.h +94 -0
  66. data/ext/alglib/dforest.cpp +1819 -0
  67. data/ext/alglib/dforest.h +316 -0
  68. data/ext/alglib/elliptic.cpp +497 -0
  69. data/ext/alglib/elliptic.h +217 -0
  70. data/ext/alglib/estnorm.cpp +429 -0
  71. data/ext/alglib/estnorm.h +107 -0
  72. data/ext/alglib/expintegrals.cpp +422 -0
  73. data/ext/alglib/expintegrals.h +108 -0
  74. data/ext/alglib/faq.english.html +258 -0
  75. data/ext/alglib/faq.russian.html +272 -0
  76. data/ext/alglib/fdistr.cpp +202 -0
  77. data/ext/alglib/fdistr.h +163 -0
  78. data/ext/alglib/fresnel.cpp +211 -0
  79. data/ext/alglib/fresnel.h +91 -0
  80. data/ext/alglib/gammaf.cpp +338 -0
  81. data/ext/alglib/gammaf.h +104 -0
  82. data/ext/alglib/gqgengauss.cpp +235 -0
  83. data/ext/alglib/gqgengauss.h +92 -0
  84. data/ext/alglib/gqgenhermite.cpp +268 -0
  85. data/ext/alglib/gqgenhermite.h +63 -0
  86. data/ext/alglib/gqgenjacobi.cpp +297 -0
  87. data/ext/alglib/gqgenjacobi.h +72 -0
  88. data/ext/alglib/gqgenlaguerre.cpp +265 -0
  89. data/ext/alglib/gqgenlaguerre.h +69 -0
  90. data/ext/alglib/gqgenlegendre.cpp +300 -0
  91. data/ext/alglib/gqgenlegendre.h +62 -0
  92. data/ext/alglib/gqgenlobatto.cpp +305 -0
  93. data/ext/alglib/gqgenlobatto.h +97 -0
  94. data/ext/alglib/gqgenradau.cpp +232 -0
  95. data/ext/alglib/gqgenradau.h +95 -0
  96. data/ext/alglib/hbisinv.cpp +480 -0
  97. data/ext/alglib/hbisinv.h +183 -0
  98. data/ext/alglib/hblas.cpp +228 -0
  99. data/ext/alglib/hblas.h +64 -0
  100. data/ext/alglib/hcholesky.cpp +339 -0
  101. data/ext/alglib/hcholesky.h +91 -0
  102. data/ext/alglib/hermite.cpp +114 -0
  103. data/ext/alglib/hermite.h +49 -0
  104. data/ext/alglib/hessenberg.cpp +370 -0
  105. data/ext/alglib/hessenberg.h +152 -0
  106. data/ext/alglib/hevd.cpp +247 -0
  107. data/ext/alglib/hevd.h +107 -0
  108. data/ext/alglib/hsschur.cpp +1316 -0
  109. data/ext/alglib/hsschur.h +108 -0
  110. data/ext/alglib/htridiagonal.cpp +734 -0
  111. data/ext/alglib/htridiagonal.h +180 -0
  112. data/ext/alglib/ialglib.cpp +6 -0
  113. data/ext/alglib/ialglib.h +9 -0
  114. data/ext/alglib/ibetaf.cpp +960 -0
  115. data/ext/alglib/ibetaf.h +125 -0
  116. data/ext/alglib/igammaf.cpp +430 -0
  117. data/ext/alglib/igammaf.h +157 -0
  118. data/ext/alglib/inv.cpp +274 -0
  119. data/ext/alglib/inv.h +115 -0
  120. data/ext/alglib/inverseupdate.cpp +480 -0
  121. data/ext/alglib/inverseupdate.h +185 -0
  122. data/ext/alglib/jacobianelliptic.cpp +164 -0
  123. data/ext/alglib/jacobianelliptic.h +94 -0
  124. data/ext/alglib/jarquebera.cpp +2271 -0
  125. data/ext/alglib/jarquebera.h +80 -0
  126. data/ext/alglib/kmeans.cpp +356 -0
  127. data/ext/alglib/kmeans.h +76 -0
  128. data/ext/alglib/laguerre.cpp +94 -0
  129. data/ext/alglib/laguerre.h +48 -0
  130. data/ext/alglib/lbfgs.cpp +1167 -0
  131. data/ext/alglib/lbfgs.h +218 -0
  132. data/ext/alglib/lda.cpp +434 -0
  133. data/ext/alglib/lda.h +133 -0
  134. data/ext/alglib/ldlt.cpp +1130 -0
  135. data/ext/alglib/ldlt.h +124 -0
  136. data/ext/alglib/leastsquares.cpp +1252 -0
  137. data/ext/alglib/leastsquares.h +290 -0
  138. data/ext/alglib/legendre.cpp +107 -0
  139. data/ext/alglib/legendre.h +49 -0
  140. data/ext/alglib/linreg.cpp +1185 -0
  141. data/ext/alglib/linreg.h +380 -0
  142. data/ext/alglib/logit.cpp +1523 -0
  143. data/ext/alglib/logit.h +333 -0
  144. data/ext/alglib/lq.cpp +399 -0
  145. data/ext/alglib/lq.h +160 -0
  146. data/ext/alglib/lu.cpp +462 -0
  147. data/ext/alglib/lu.h +119 -0
  148. data/ext/alglib/mannwhitneyu.cpp +4490 -0
  149. data/ext/alglib/mannwhitneyu.h +115 -0
  150. data/ext/alglib/minlm.cpp +918 -0
  151. data/ext/alglib/minlm.h +312 -0
  152. data/ext/alglib/mlpbase.cpp +3375 -0
  153. data/ext/alglib/mlpbase.h +589 -0
  154. data/ext/alglib/mlpe.cpp +1369 -0
  155. data/ext/alglib/mlpe.h +552 -0
  156. data/ext/alglib/mlptrain.cpp +1056 -0
  157. data/ext/alglib/mlptrain.h +283 -0
  158. data/ext/alglib/nearunityunit.cpp +91 -0
  159. data/ext/alglib/nearunityunit.h +17 -0
  160. data/ext/alglib/normaldistr.cpp +377 -0
  161. data/ext/alglib/normaldistr.h +175 -0
  162. data/ext/alglib/nsevd.cpp +1869 -0
  163. data/ext/alglib/nsevd.h +140 -0
  164. data/ext/alglib/pca.cpp +168 -0
  165. data/ext/alglib/pca.h +87 -0
  166. data/ext/alglib/poissondistr.cpp +143 -0
  167. data/ext/alglib/poissondistr.h +130 -0
  168. data/ext/alglib/polinterpolation.cpp +685 -0
  169. data/ext/alglib/polinterpolation.h +206 -0
  170. data/ext/alglib/psif.cpp +173 -0
  171. data/ext/alglib/psif.h +88 -0
  172. data/ext/alglib/qr.cpp +414 -0
  173. data/ext/alglib/qr.h +168 -0
  174. data/ext/alglib/ratinterpolation.cpp +134 -0
  175. data/ext/alglib/ratinterpolation.h +72 -0
  176. data/ext/alglib/rcond.cpp +705 -0
  177. data/ext/alglib/rcond.h +140 -0
  178. data/ext/alglib/reflections.cpp +504 -0
  179. data/ext/alglib/reflections.h +165 -0
  180. data/ext/alglib/rotations.cpp +473 -0
  181. data/ext/alglib/rotations.h +128 -0
  182. data/ext/alglib/rsolve.cpp +221 -0
  183. data/ext/alglib/rsolve.h +99 -0
  184. data/ext/alglib/sbisinv.cpp +217 -0
  185. data/ext/alglib/sbisinv.h +171 -0
  186. data/ext/alglib/sblas.cpp +185 -0
  187. data/ext/alglib/sblas.h +64 -0
  188. data/ext/alglib/schur.cpp +156 -0
  189. data/ext/alglib/schur.h +102 -0
  190. data/ext/alglib/sdet.cpp +193 -0
  191. data/ext/alglib/sdet.h +101 -0
  192. data/ext/alglib/sevd.cpp +116 -0
  193. data/ext/alglib/sevd.h +99 -0
  194. data/ext/alglib/sinverse.cpp +672 -0
  195. data/ext/alglib/sinverse.h +138 -0
  196. data/ext/alglib/spddet.cpp +138 -0
  197. data/ext/alglib/spddet.h +96 -0
  198. data/ext/alglib/spdgevd.cpp +842 -0
  199. data/ext/alglib/spdgevd.h +200 -0
  200. data/ext/alglib/spdinverse.cpp +509 -0
  201. data/ext/alglib/spdinverse.h +122 -0
  202. data/ext/alglib/spdrcond.cpp +421 -0
  203. data/ext/alglib/spdrcond.h +118 -0
  204. data/ext/alglib/spdsolve.cpp +275 -0
  205. data/ext/alglib/spdsolve.h +105 -0
  206. data/ext/alglib/spline2d.cpp +1192 -0
  207. data/ext/alglib/spline2d.h +301 -0
  208. data/ext/alglib/spline3.cpp +1264 -0
  209. data/ext/alglib/spline3.h +290 -0
  210. data/ext/alglib/srcond.cpp +595 -0
  211. data/ext/alglib/srcond.h +127 -0
  212. data/ext/alglib/ssolve.cpp +895 -0
  213. data/ext/alglib/ssolve.h +139 -0
  214. data/ext/alglib/stdafx.h +0 -0
  215. data/ext/alglib/stest.cpp +131 -0
  216. data/ext/alglib/stest.h +94 -0
  217. data/ext/alglib/studenttdistr.cpp +222 -0
  218. data/ext/alglib/studenttdistr.h +115 -0
  219. data/ext/alglib/studentttests.cpp +377 -0
  220. data/ext/alglib/studentttests.h +178 -0
  221. data/ext/alglib/svd.cpp +620 -0
  222. data/ext/alglib/svd.h +126 -0
  223. data/ext/alglib/tdbisinv.cpp +2608 -0
  224. data/ext/alglib/tdbisinv.h +228 -0
  225. data/ext/alglib/tdevd.cpp +1229 -0
  226. data/ext/alglib/tdevd.h +115 -0
  227. data/ext/alglib/tridiagonal.cpp +594 -0
  228. data/ext/alglib/tridiagonal.h +171 -0
  229. data/ext/alglib/trigintegrals.cpp +490 -0
  230. data/ext/alglib/trigintegrals.h +131 -0
  231. data/ext/alglib/trinverse.cpp +345 -0
  232. data/ext/alglib/trinverse.h +98 -0
  233. data/ext/alglib/trlinsolve.cpp +926 -0
  234. data/ext/alglib/trlinsolve.h +73 -0
  235. data/ext/alglib/tsort.cpp +405 -0
  236. data/ext/alglib/tsort.h +54 -0
  237. data/ext/alglib/variancetests.cpp +245 -0
  238. data/ext/alglib/variancetests.h +134 -0
  239. data/ext/alglib/wsr.cpp +6285 -0
  240. data/ext/alglib/wsr.h +96 -0
  241. data/ext/ap.i +97 -0
  242. data/ext/correlation.i +24 -0
  243. data/ext/extconf.rb +6 -0
  244. data/ext/logit.i +89 -0
  245. data/lib/alglib.rb +71 -0
  246. data/lib/alglib/correlation.rb +26 -0
  247. data/lib/alglib/linearregression.rb +63 -0
  248. data/lib/alglib/logit.rb +42 -0
  249. data/test/test_alglib.rb +52 -0
  250. data/test/test_correlation.rb +44 -0
  251. data/test/test_correlationtest.rb +45 -0
  252. data/test/test_linreg.rb +35 -0
  253. data/test/test_logit.rb +43 -0
  254. data/test/test_pca.rb +27 -0
  255. metadata +326 -0
@@ -0,0 +1,119 @@
1
+ /*************************************************************************
2
+ Copyright (c) 1992-2007 The University of Tennessee. All rights reserved.
3
+
4
+ Contributors:
5
+ * Sergey Bochkanov (ALGLIB project). Translation from FORTRAN to
6
+ pseudocode.
7
+
8
+ See subroutines comments for additional copyrights.
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions are
12
+ met:
13
+
14
+ - Redistributions of source code must retain the above copyright
15
+ notice, this list of conditions and the following disclaimer.
16
+
17
+ - Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer listed
19
+ in this license in the documentation and/or other materials
20
+ provided with the distribution.
21
+
22
+ - Neither the name of the copyright holders nor the names of its
23
+ contributors may be used to endorse or promote products derived from
24
+ this software without specific prior written permission.
25
+
26
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
+ *************************************************************************/
38
+
39
+ #ifndef _lu_h
40
+ #define _lu_h
41
+
42
+ #include "ap.h"
43
+ #include "ialglib.h"
44
+
45
+ /*************************************************************************
46
+ LU decomposition of a general matrix of size MxN
47
+
48
+ The subroutine calculates the LU decomposition of a rectangular general
49
+ matrix with partial pivoting (with row permutations).
50
+
51
+ Input parameters:
52
+ A - matrix A whose indexes range within [0..M-1, 0..N-1].
53
+ M - number of rows in matrix A.
54
+ N - number of columns in matrix A.
55
+
56
+ Output parameters:
57
+ A - matrices L and U in compact form (see below).
58
+ Array whose indexes range within [0..M-1, 0..N-1].
59
+ Pivots - permutation matrix in compact form (see below).
60
+ Array whose index ranges within [0..Min(M-1,N-1)].
61
+
62
+ Matrix A is represented as A = P * L * U, where P is a permutation matrix,
63
+ matrix L - lower triangular (or lower trapezoid, if M>N) matrix,
64
+ U - upper triangular (or upper trapezoid, if M<N) matrix.
65
+
66
+ Let M be equal to 4 and N be equal to 3:
67
+
68
+ ( 1 ) ( U11 U12 U13 )
69
+ A = P1 * P2 * P3 * ( L21 1 ) * ( U22 U23 )
70
+ ( L31 L32 1 ) ( U33 )
71
+ ( L41 L42 L43 )
72
+
73
+ Matrix L has size MxMin(M,N), matrix U has size Min(M,N)xN, matrix P(i) is
74
+ a permutation of the identity matrix of size MxM with numbers I and Pivots[I].
75
+
76
+ The algorithm returns array Pivots and the following matrix which replaces
77
+ matrix A and contains matrices L and U in compact form (the example applies
78
+ to M=4, N=3).
79
+
80
+ ( U11 U12 U13 )
81
+ ( L21 U22 U23 )
82
+ ( L31 L32 U33 )
83
+ ( L41 L42 L43 )
84
+
85
+ As we can see, the unit diagonal isn't stored.
86
+
87
+ -- LAPACK routine (version 3.0) --
88
+ Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
89
+ Courant Institute, Argonne National Lab, and Rice University
90
+ June 30, 1992
91
+ *************************************************************************/
92
+ void rmatrixlu(ap::real_2d_array& a,
93
+ int m,
94
+ int n,
95
+ ap::integer_1d_array& pivots);
96
+
97
+
98
+ /*************************************************************************
99
+ Obsolete 1-based subroutine. Left for backward compatibility.
100
+ See RMatrixLU for 0-based replacement.
101
+ *************************************************************************/
102
+ void ludecomposition(ap::real_2d_array& a,
103
+ int m,
104
+ int n,
105
+ ap::integer_1d_array& pivots);
106
+
107
+
108
+ /*************************************************************************
109
+ Obsolete 1-based subroutine. Left for backward compatibility.
110
+ *************************************************************************/
111
+ void ludecompositionunpacked(ap::real_2d_array a,
112
+ int m,
113
+ int n,
114
+ ap::real_2d_array& l,
115
+ ap::real_2d_array& u,
116
+ ap::integer_1d_array& pivots);
117
+
118
+
119
+ #endif
@@ -0,0 +1,4490 @@
1
+ /*************************************************************************
2
+ Copyright (c) 2007, Sergey Bochkanov (ALGLIB project).
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are
6
+ met:
7
+
8
+ - Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+
11
+ - Redistributions in binary form must reproduce the above copyright
12
+ notice, this list of conditions and the following disclaimer listed
13
+ in this license in the documentation and/or other materials
14
+ provided with the distribution.
15
+
16
+ - Neither the name of the copyright holders nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *************************************************************************/
32
+
33
+ #include <stdafx.h>
34
+ #include "mannwhitneyu.h"
35
+
36
+ static void ucheb(double x, double c, double& tj, double& tj1, double& r);
37
+ static double uninterpolate(double p1, double p2, double p3, int n);
38
+ static double usigma000(int n1, int n2);
39
+ static double usigma075(int n1, int n2);
40
+ static double usigma150(int n1, int n2);
41
+ static double usigma225(int n1, int n2);
42
+ static double usigma300(int n1, int n2);
43
+ static double usigma333(int n1, int n2);
44
+ static double usigma367(int n1, int n2);
45
+ static double usigma400(int n1, int n2);
46
+ static double utbln5n5(double s);
47
+ static double utbln5n6(double s);
48
+ static double utbln5n7(double s);
49
+ static double utbln5n8(double s);
50
+ static double utbln5n9(double s);
51
+ static double utbln5n10(double s);
52
+ static double utbln5n11(double s);
53
+ static double utbln5n12(double s);
54
+ static double utbln5n13(double s);
55
+ static double utbln5n14(double s);
56
+ static double utbln5n15(double s);
57
+ static double utbln5n16(double s);
58
+ static double utbln5n17(double s);
59
+ static double utbln5n18(double s);
60
+ static double utbln5n19(double s);
61
+ static double utbln5n20(double s);
62
+ static double utbln5n21(double s);
63
+ static double utbln5n22(double s);
64
+ static double utbln5n23(double s);
65
+ static double utbln5n24(double s);
66
+ static double utbln5n25(double s);
67
+ static double utbln5n26(double s);
68
+ static double utbln5n27(double s);
69
+ static double utbln5n28(double s);
70
+ static double utbln5n29(double s);
71
+ static double utbln5n30(double s);
72
+ static double utbln5n100(double s);
73
+ static double utbln6n6(double s);
74
+ static double utbln6n7(double s);
75
+ static double utbln6n8(double s);
76
+ static double utbln6n9(double s);
77
+ static double utbln6n10(double s);
78
+ static double utbln6n11(double s);
79
+ static double utbln6n12(double s);
80
+ static double utbln6n13(double s);
81
+ static double utbln6n14(double s);
82
+ static double utbln6n15(double s);
83
+ static double utbln6n30(double s);
84
+ static double utbln6n100(double s);
85
+ static double utbln7n7(double s);
86
+ static double utbln7n8(double s);
87
+ static double utbln7n9(double s);
88
+ static double utbln7n10(double s);
89
+ static double utbln7n11(double s);
90
+ static double utbln7n12(double s);
91
+ static double utbln7n13(double s);
92
+ static double utbln7n14(double s);
93
+ static double utbln7n15(double s);
94
+ static double utbln7n30(double s);
95
+ static double utbln7n100(double s);
96
+ static double utbln8n8(double s);
97
+ static double utbln8n9(double s);
98
+ static double utbln8n10(double s);
99
+ static double utbln8n11(double s);
100
+ static double utbln8n12(double s);
101
+ static double utbln8n13(double s);
102
+ static double utbln8n14(double s);
103
+ static double utbln8n15(double s);
104
+ static double utbln8n30(double s);
105
+ static double utbln8n100(double s);
106
+ static double utbln9n9(double s);
107
+ static double utbln9n10(double s);
108
+ static double utbln9n11(double s);
109
+ static double utbln9n12(double s);
110
+ static double utbln9n13(double s);
111
+ static double utbln9n14(double s);
112
+ static double utbln9n15(double s);
113
+ static double utbln9n30(double s);
114
+ static double utbln9n100(double s);
115
+ static double utbln10n10(double s);
116
+ static double utbln10n11(double s);
117
+ static double utbln10n12(double s);
118
+ static double utbln10n13(double s);
119
+ static double utbln10n14(double s);
120
+ static double utbln10n15(double s);
121
+ static double utbln10n30(double s);
122
+ static double utbln10n100(double s);
123
+ static double utbln11n11(double s);
124
+ static double utbln11n12(double s);
125
+ static double utbln11n13(double s);
126
+ static double utbln11n14(double s);
127
+ static double utbln11n15(double s);
128
+ static double utbln11n30(double s);
129
+ static double utbln11n100(double s);
130
+ static double utbln12n12(double s);
131
+ static double utbln12n13(double s);
132
+ static double utbln12n14(double s);
133
+ static double utbln12n15(double s);
134
+ static double utbln12n30(double s);
135
+ static double utbln12n100(double s);
136
+ static double utbln13n13(double s);
137
+ static double utbln13n14(double s);
138
+ static double utbln13n15(double s);
139
+ static double utbln13n30(double s);
140
+ static double utbln13n100(double s);
141
+ static double utbln14n14(double s);
142
+ static double utbln14n15(double s);
143
+ static double utbln14n30(double s);
144
+ static double utbln14n100(double s);
145
+ static double usigma(double s, int n1, int n2);
146
+
147
+ /*************************************************************************
148
+ Mann-Whitney U-test
149
+
150
+ This test checks hypotheses about whether X and Y are samples of two
151
+ continuous distributions of the same shape and same median or whether
152
+ their medians are different.
153
+
154
+ The following tests are performed:
155
+ * two-tailed test (null hypothesis - the medians are equal)
156
+ * left-tailed test (null hypothesis - the median of the first sample
157
+ is greater than or equal to the median of the second sample)
158
+ * right-tailed test (null hypothesis - the median of the first sample
159
+ is less than or equal to the median of the second sample).
160
+
161
+ Requirements:
162
+ * the samples are independent
163
+ * X and Y are continuous distributions (or discrete distributions well-
164
+ approximating continuous distributions)
165
+ * distributions of X and Y have the same shape. The only possible
166
+ difference is their position (i.e. the value of the median)
167
+ * the number of elements in each sample is not less than 5
168
+ * the scale of measurement should be ordinal, interval or ratio (i.e.
169
+ the test could not be applied to nominal variables).
170
+
171
+ The test is non-parametric and doesn't require distributions to be normal.
172
+
173
+ Input parameters:
174
+ X - sample 1. Array whose index goes from 0 to N-1.
175
+ N - size of the sample. N>=5
176
+ Y - sample 2. Array whose index goes from 0 to M-1.
177
+ M - size of the sample. M>=5
178
+
179
+ Output parameters:
180
+ BothTails - p-value for two-tailed test.
181
+ If BothTails is less than the given significance level
182
+ the null hypothesis is rejected.
183
+ LeftTail - p-value for left-tailed test.
184
+ If LeftTail is less than the given significance level,
185
+ the null hypothesis is rejected.
186
+ RightTail - p-value for right-tailed test.
187
+ If RightTail is less than the given significance level
188
+ the null hypothesis is rejected.
189
+
190
+ To calculate p-values, special approximation is used. This method lets us
191
+ calculate p-values with satisfactory accuracy in interval [0.0001, 1].
192
+ There is no approximation outside the [0.0001, 1] interval. Therefore, if
193
+ the significance level outlies this interval, the test returns 0.0001.
194
+
195
+ Relative precision of approximation of p-value:
196
+
197
+ N M Max.err. Rms.err.
198
+ 5..10 N..10 1.4e-02 6.0e-04
199
+ 5..10 N..100 2.2e-02 5.3e-06
200
+ 10..15 N..15 1.0e-02 3.2e-04
201
+ 10..15 N..100 1.0e-02 2.2e-05
202
+ 15..100 N..100 6.1e-03 2.7e-06
203
+
204
+ For N,M>100 accuracy checks weren't put into practice, but taking into
205
+ account characteristics of asymptotic approximation used, precision should
206
+ not be sharply different from the values for interval [5, 100].
207
+
208
+ -- ALGLIB --
209
+ Copyright 09.04.2007 by Bochkanov Sergey
210
+ *************************************************************************/
211
+ void mannwhitneyutest(const ap::real_1d_array& x,
212
+ int n,
213
+ const ap::real_1d_array& y,
214
+ int m,
215
+ double& bothtails,
216
+ double& lefttail,
217
+ double& righttail)
218
+ {
219
+ int i;
220
+ int j;
221
+ int k;
222
+ int t;
223
+ double tmp;
224
+ int tmpi;
225
+ int ns;
226
+ ap::real_1d_array r;
227
+ ap::integer_1d_array c;
228
+ double u;
229
+ double p;
230
+ double mp;
231
+ double s;
232
+ double sigma;
233
+ double mu;
234
+ int tiecount;
235
+ ap::integer_1d_array tiesize;
236
+
237
+
238
+ //
239
+ // Prepare
240
+ //
241
+ if( n<=4||m<=4 )
242
+ {
243
+ bothtails = 1.0;
244
+ lefttail = 1.0;
245
+ righttail = 1.0;
246
+ return;
247
+ }
248
+ ns = n+m;
249
+ r.setbounds(0, ns-1);
250
+ c.setbounds(0, ns-1);
251
+ for(i = 0; i <= n-1; i++)
252
+ {
253
+ r(i) = x(i);
254
+ c(i) = 0;
255
+ }
256
+ for(i = 0; i <= m-1; i++)
257
+ {
258
+ r(n+i) = y(i);
259
+ c(n+i) = 1;
260
+ }
261
+
262
+ //
263
+ // sort {R, C}
264
+ //
265
+ if( ns!=1 )
266
+ {
267
+ i = 2;
268
+ do
269
+ {
270
+ t = i;
271
+ while(t!=1)
272
+ {
273
+ k = t/2;
274
+ if( r(k-1)>=r(t-1) )
275
+ {
276
+ t = 1;
277
+ }
278
+ else
279
+ {
280
+ tmp = r(k-1);
281
+ r(k-1) = r(t-1);
282
+ r(t-1) = tmp;
283
+ tmpi = c(k-1);
284
+ c(k-1) = c(t-1);
285
+ c(t-1) = tmpi;
286
+ t = k;
287
+ }
288
+ }
289
+ i = i+1;
290
+ }
291
+ while(i<=ns);
292
+ i = ns-1;
293
+ do
294
+ {
295
+ tmp = r(i);
296
+ r(i) = r(0);
297
+ r(0) = tmp;
298
+ tmpi = c(i);
299
+ c(i) = c(0);
300
+ c(0) = tmpi;
301
+ t = 1;
302
+ while(t!=0)
303
+ {
304
+ k = 2*t;
305
+ if( k>i )
306
+ {
307
+ t = 0;
308
+ }
309
+ else
310
+ {
311
+ if( k<i )
312
+ {
313
+ if( r(k)>r(k-1) )
314
+ {
315
+ k = k+1;
316
+ }
317
+ }
318
+ if( r(t-1)>=r(k-1) )
319
+ {
320
+ t = 0;
321
+ }
322
+ else
323
+ {
324
+ tmp = r(k-1);
325
+ r(k-1) = r(t-1);
326
+ r(t-1) = tmp;
327
+ tmpi = c(k-1);
328
+ c(k-1) = c(t-1);
329
+ c(t-1) = tmpi;
330
+ t = k;
331
+ }
332
+ }
333
+ }
334
+ i = i-1;
335
+ }
336
+ while(i>=1);
337
+ }
338
+
339
+ //
340
+ // compute tied ranks
341
+ //
342
+ i = 0;
343
+ tiecount = 0;
344
+ tiesize.setbounds(0, ns-1);
345
+ while(i<=ns-1)
346
+ {
347
+ j = i+1;
348
+ while(j<=ns-1)
349
+ {
350
+ if( r(j)!=r(i) )
351
+ {
352
+ break;
353
+ }
354
+ j = j+1;
355
+ }
356
+ for(k = i; k <= j-1; k++)
357
+ {
358
+ r(k) = 1+double(i+j-1)/double(2);
359
+ }
360
+ tiesize(tiecount) = j-i;
361
+ tiecount = tiecount+1;
362
+ i = j;
363
+ }
364
+
365
+ //
366
+ // Compute U
367
+ //
368
+ u = 0;
369
+ for(i = 0; i <= ns-1; i++)
370
+ {
371
+ if( c(i)==0 )
372
+ {
373
+ u = u+r(i);
374
+ }
375
+ }
376
+ u = n*m+n*(n+1)/2-u;
377
+
378
+ //
379
+ // Result
380
+ //
381
+ mu = double(n*m)/double(2);
382
+ tmp = ns*(ap::sqr(double(ns))-1)/12;
383
+ for(i = 0; i <= tiecount-1; i++)
384
+ {
385
+ tmp = tmp-tiesize(i)*(ap::sqr(double(tiesize(i)))-1)/12;
386
+ }
387
+ sigma = sqrt(double(m*n)/double(ns)/(ns-1)*tmp);
388
+ s = (u-mu)/sigma;
389
+ if( s<=0 )
390
+ {
391
+ p = exp(usigma(-(u-mu)/sigma, n, m));
392
+ mp = 1-exp(usigma(-(u-1-mu)/sigma, n, m));
393
+ }
394
+ else
395
+ {
396
+ mp = exp(usigma((u-mu)/sigma, n, m));
397
+ p = 1-exp(usigma((u+1-mu)/sigma, n, m));
398
+ }
399
+ bothtails = ap::maxreal(2*ap::minreal(p, mp), 1.0E-4);
400
+ lefttail = ap::maxreal(mp, 1.0E-4);
401
+ righttail = ap::maxreal(p, 1.0E-4);
402
+ }
403
+
404
+
405
+ /*************************************************************************
406
+ Sequential Chebyshev interpolation.
407
+ *************************************************************************/
408
+ static void ucheb(double x, double c, double& tj, double& tj1, double& r)
409
+ {
410
+ double t;
411
+
412
+ r = r+c*tj;
413
+ t = 2*x*tj1-tj;
414
+ tj = tj1;
415
+ tj1 = t;
416
+ }
417
+
418
+
419
+ /*************************************************************************
420
+ Three-point polynomial interpolation.
421
+ *************************************************************************/
422
+ static double uninterpolate(double p1, double p2, double p3, int n)
423
+ {
424
+ double result;
425
+ double t1;
426
+ double t2;
427
+ double t3;
428
+ double t;
429
+ double p12;
430
+ double p23;
431
+
432
+ t1 = 1.0/15.0;
433
+ t2 = 1.0/30.0;
434
+ t3 = 1.0/100.0;
435
+ t = 1.0/n;
436
+ p12 = ((t-t2)*p1+(t1-t)*p2)/(t1-t2);
437
+ p23 = ((t-t3)*p2+(t2-t)*p3)/(t2-t3);
438
+ result = ((t-t3)*p12+(t1-t)*p23)/(t1-t3);
439
+ return result;
440
+ }
441
+
442
+
443
+ /*************************************************************************
444
+ Tail(0, N1, N2)
445
+ *************************************************************************/
446
+ static double usigma000(int n1, int n2)
447
+ {
448
+ double result;
449
+ double p1;
450
+ double p2;
451
+ double p3;
452
+
453
+ p1 = uninterpolate(-6.76984e-01, -6.83700e-01, -6.89873e-01, n2);
454
+ p2 = uninterpolate(-6.83700e-01, -6.87311e-01, -6.90957e-01, n2);
455
+ p3 = uninterpolate(-6.89873e-01, -6.90957e-01, -6.92175e-01, n2);
456
+ result = uninterpolate(p1, p2, p3, n1);
457
+ return result;
458
+ }
459
+
460
+
461
+ /*************************************************************************
462
+ Tail(0.75, N1, N2)
463
+ *************************************************************************/
464
+ static double usigma075(int n1, int n2)
465
+ {
466
+ double result;
467
+ double p1;
468
+ double p2;
469
+ double p3;
470
+
471
+ p1 = uninterpolate(-1.44500e+00, -1.45906e+00, -1.47063e+00, n2);
472
+ p2 = uninterpolate(-1.45906e+00, -1.46856e+00, -1.47644e+00, n2);
473
+ p3 = uninterpolate(-1.47063e+00, -1.47644e+00, -1.48100e+00, n2);
474
+ result = uninterpolate(p1, p2, p3, n1);
475
+ return result;
476
+ }
477
+
478
+
479
+ /*************************************************************************
480
+ Tail(1.5, N1, N2)
481
+ *************************************************************************/
482
+ static double usigma150(int n1, int n2)
483
+ {
484
+ double result;
485
+ double p1;
486
+ double p2;
487
+ double p3;
488
+
489
+ p1 = uninterpolate(-2.65380e+00, -2.67352e+00, -2.69011e+00, n2);
490
+ p2 = uninterpolate(-2.67352e+00, -2.68591e+00, -2.69659e+00, n2);
491
+ p3 = uninterpolate(-2.69011e+00, -2.69659e+00, -2.70192e+00, n2);
492
+ result = uninterpolate(p1, p2, p3, n1);
493
+ return result;
494
+ }
495
+
496
+
497
+ /*************************************************************************
498
+ Tail(2.25, N1, N2)
499
+ *************************************************************************/
500
+ static double usigma225(int n1, int n2)
501
+ {
502
+ double result;
503
+ double p1;
504
+ double p2;
505
+ double p3;
506
+
507
+ p1 = uninterpolate(-4.41465e+00, -4.42260e+00, -4.43702e+00, n2);
508
+ p2 = uninterpolate(-4.42260e+00, -4.41639e+00, -4.41928e+00, n2);
509
+ p3 = uninterpolate(-4.43702e+00, -4.41928e+00, -4.41030e+00, n2);
510
+ result = uninterpolate(p1, p2, p3, n1);
511
+ return result;
512
+ }
513
+
514
+
515
+ /*************************************************************************
516
+ Tail(3.0, N1, N2)
517
+ *************************************************************************/
518
+ static double usigma300(int n1, int n2)
519
+ {
520
+ double result;
521
+ double p1;
522
+ double p2;
523
+ double p3;
524
+
525
+ p1 = uninterpolate(-6.89839e+00, -6.83477e+00, -6.82340e+00, n2);
526
+ p2 = uninterpolate(-6.83477e+00, -6.74559e+00, -6.71117e+00, n2);
527
+ p3 = uninterpolate(-6.82340e+00, -6.71117e+00, -6.64929e+00, n2);
528
+ result = uninterpolate(p1, p2, p3, n1);
529
+ return result;
530
+ }
531
+
532
+
533
+ /*************************************************************************
534
+ Tail(3.33, N1, N2)
535
+ *************************************************************************/
536
+ static double usigma333(int n1, int n2)
537
+ {
538
+ double result;
539
+ double p1;
540
+ double p2;
541
+ double p3;
542
+
543
+ p1 = uninterpolate(-8.31272e+00, -8.17096e+00, -8.13125e+00, n2);
544
+ p2 = uninterpolate(-8.17096e+00, -8.00156e+00, -7.93245e+00, n2);
545
+ p3 = uninterpolate(-8.13125e+00, -7.93245e+00, -7.82502e+00, n2);
546
+ result = uninterpolate(p1, p2, p3, n1);
547
+ return result;
548
+ }
549
+
550
+
551
+ /*************************************************************************
552
+ Tail(3.66, N1, N2)
553
+ *************************************************************************/
554
+ static double usigma367(int n1, int n2)
555
+ {
556
+ double result;
557
+ double p1;
558
+ double p2;
559
+ double p3;
560
+
561
+ p1 = uninterpolate(-9.98837e+00, -9.70844e+00, -9.62087e+00, n2);
562
+ p2 = uninterpolate(-9.70844e+00, -9.41156e+00, -9.28998e+00, n2);
563
+ p3 = uninterpolate(-9.62087e+00, -9.28998e+00, -9.11686e+00, n2);
564
+ result = uninterpolate(p1, p2, p3, n1);
565
+ return result;
566
+ }
567
+
568
+
569
+ /*************************************************************************
570
+ Tail(4.0, N1, N2)
571
+ *************************************************************************/
572
+ static double usigma400(int n1, int n2)
573
+ {
574
+ double result;
575
+ double p1;
576
+ double p2;
577
+ double p3;
578
+
579
+ p1 = uninterpolate(-1.20250e+01, -1.14911e+01, -1.13231e+01, n2);
580
+ p2 = uninterpolate(-1.14911e+01, -1.09927e+01, -1.07937e+01, n2);
581
+ p3 = uninterpolate(-1.13231e+01, -1.07937e+01, -1.05285e+01, n2);
582
+ result = uninterpolate(p1, p2, p3, n1);
583
+ return result;
584
+ }
585
+
586
+
587
+ /*************************************************************************
588
+ Tail(S, 5, 5)
589
+ *************************************************************************/
590
+ static double utbln5n5(double s)
591
+ {
592
+ double result;
593
+ double x;
594
+ double tj;
595
+ double tj1;
596
+
597
+ result = 0;
598
+ x = ap::minreal(2*(s-0.000000e+00)/2.611165e+00-1, 1.0);
599
+ tj = 1;
600
+ tj1 = x;
601
+ ucheb(x, -2.596264e+00, tj, tj1, result);
602
+ ucheb(x, -2.412086e+00, tj, tj1, result);
603
+ ucheb(x, -4.858542e-01, tj, tj1, result);
604
+ ucheb(x, -5.614282e-02, tj, tj1, result);
605
+ ucheb(x, 3.372686e-03, tj, tj1, result);
606
+ ucheb(x, 8.524731e-03, tj, tj1, result);
607
+ ucheb(x, 4.435331e-03, tj, tj1, result);
608
+ ucheb(x, 1.284665e-03, tj, tj1, result);
609
+ ucheb(x, 4.184141e-03, tj, tj1, result);
610
+ ucheb(x, 5.298360e-03, tj, tj1, result);
611
+ ucheb(x, 7.447272e-04, tj, tj1, result);
612
+ ucheb(x, -3.938769e-03, tj, tj1, result);
613
+ ucheb(x, -4.276205e-03, tj, tj1, result);
614
+ ucheb(x, -1.138481e-03, tj, tj1, result);
615
+ ucheb(x, 8.684625e-04, tj, tj1, result);
616
+ ucheb(x, 1.558104e-03, tj, tj1, result);
617
+ return result;
618
+ }
619
+
620
+
621
+ /*************************************************************************
622
+ Tail(S, 5, 6)
623
+ *************************************************************************/
624
+ static double utbln5n6(double s)
625
+ {
626
+ double result;
627
+ double x;
628
+ double tj;
629
+ double tj1;
630
+
631
+ result = 0;
632
+ x = ap::minreal(2*(s-0.000000e+00)/2.738613e+00-1, 1.0);
633
+ tj = 1;
634
+ tj1 = x;
635
+ ucheb(x, -2.810459e+00, tj, tj1, result);
636
+ ucheb(x, -2.684429e+00, tj, tj1, result);
637
+ ucheb(x, -5.712858e-01, tj, tj1, result);
638
+ ucheb(x, -8.009324e-02, tj, tj1, result);
639
+ ucheb(x, -6.644391e-03, tj, tj1, result);
640
+ ucheb(x, 6.034173e-03, tj, tj1, result);
641
+ ucheb(x, 4.953498e-03, tj, tj1, result);
642
+ ucheb(x, 3.279293e-03, tj, tj1, result);
643
+ ucheb(x, 3.563485e-03, tj, tj1, result);
644
+ ucheb(x, 4.971952e-03, tj, tj1, result);
645
+ ucheb(x, 3.506309e-03, tj, tj1, result);
646
+ ucheb(x, -1.541406e-04, tj, tj1, result);
647
+ ucheb(x, -3.283205e-03, tj, tj1, result);
648
+ ucheb(x, -3.016347e-03, tj, tj1, result);
649
+ ucheb(x, -1.221626e-03, tj, tj1, result);
650
+ ucheb(x, -1.286752e-03, tj, tj1, result);
651
+ return result;
652
+ }
653
+
654
+
655
+ /*************************************************************************
656
+ Tail(S, 5, 7)
657
+ *************************************************************************/
658
+ static double utbln5n7(double s)
659
+ {
660
+ double result;
661
+ double x;
662
+ double tj;
663
+ double tj1;
664
+
665
+ result = 0;
666
+ x = ap::minreal(2*(s-0.000000e+00)/2.841993e+00-1, 1.0);
667
+ tj = 1;
668
+ tj1 = x;
669
+ ucheb(x, -2.994677e+00, tj, tj1, result);
670
+ ucheb(x, -2.923264e+00, tj, tj1, result);
671
+ ucheb(x, -6.506190e-01, tj, tj1, result);
672
+ ucheb(x, -1.054280e-01, tj, tj1, result);
673
+ ucheb(x, -1.794587e-02, tj, tj1, result);
674
+ ucheb(x, 1.726290e-03, tj, tj1, result);
675
+ ucheb(x, 4.534180e-03, tj, tj1, result);
676
+ ucheb(x, 4.517845e-03, tj, tj1, result);
677
+ ucheb(x, 3.904428e-03, tj, tj1, result);
678
+ ucheb(x, 3.882443e-03, tj, tj1, result);
679
+ ucheb(x, 3.482988e-03, tj, tj1, result);
680
+ ucheb(x, 2.114875e-03, tj, tj1, result);
681
+ ucheb(x, -1.515082e-04, tj, tj1, result);
682
+ ucheb(x, -1.996056e-03, tj, tj1, result);
683
+ ucheb(x, -2.293581e-03, tj, tj1, result);
684
+ ucheb(x, -2.349444e-03, tj, tj1, result);
685
+ return result;
686
+ }
687
+
688
+
689
+ /*************************************************************************
690
+ Tail(S, 5, 8)
691
+ *************************************************************************/
692
+ static double utbln5n8(double s)
693
+ {
694
+ double result;
695
+ double x;
696
+ double tj;
697
+ double tj1;
698
+
699
+ result = 0;
700
+ x = ap::minreal(2*(s-0.000000e+00)/2.927700e+00-1, 1.0);
701
+ tj = 1;
702
+ tj1 = x;
703
+ ucheb(x, -3.155727e+00, tj, tj1, result);
704
+ ucheb(x, -3.135078e+00, tj, tj1, result);
705
+ ucheb(x, -7.247203e-01, tj, tj1, result);
706
+ ucheb(x, -1.309697e-01, tj, tj1, result);
707
+ ucheb(x, -2.993725e-02, tj, tj1, result);
708
+ ucheb(x, -3.567219e-03, tj, tj1, result);
709
+ ucheb(x, 3.383704e-03, tj, tj1, result);
710
+ ucheb(x, 5.002188e-03, tj, tj1, result);
711
+ ucheb(x, 4.487322e-03, tj, tj1, result);
712
+ ucheb(x, 3.443899e-03, tj, tj1, result);
713
+ ucheb(x, 2.688270e-03, tj, tj1, result);
714
+ ucheb(x, 2.600339e-03, tj, tj1, result);
715
+ ucheb(x, 1.874948e-03, tj, tj1, result);
716
+ ucheb(x, 1.811593e-04, tj, tj1, result);
717
+ ucheb(x, -1.072353e-03, tj, tj1, result);
718
+ ucheb(x, -2.659457e-03, tj, tj1, result);
719
+ return result;
720
+ }
721
+
722
+
723
+ /*************************************************************************
724
+ Tail(S, 5, 9)
725
+ *************************************************************************/
726
+ static double utbln5n9(double s)
727
+ {
728
+ double result;
729
+ double x;
730
+ double tj;
731
+ double tj1;
732
+
733
+ result = 0;
734
+ x = ap::minreal(2*(s-0.000000e+00)/3.000000e+00-1, 1.0);
735
+ tj = 1;
736
+ tj1 = x;
737
+ ucheb(x, -3.298162e+00, tj, tj1, result);
738
+ ucheb(x, -3.325016e+00, tj, tj1, result);
739
+ ucheb(x, -7.939852e-01, tj, tj1, result);
740
+ ucheb(x, -1.563029e-01, tj, tj1, result);
741
+ ucheb(x, -4.222652e-02, tj, tj1, result);
742
+ ucheb(x, -9.195200e-03, tj, tj1, result);
743
+ ucheb(x, 1.445665e-03, tj, tj1, result);
744
+ ucheb(x, 5.204792e-03, tj, tj1, result);
745
+ ucheb(x, 4.775217e-03, tj, tj1, result);
746
+ ucheb(x, 3.527781e-03, tj, tj1, result);
747
+ ucheb(x, 2.221948e-03, tj, tj1, result);
748
+ ucheb(x, 2.242968e-03, tj, tj1, result);
749
+ ucheb(x, 2.607959e-03, tj, tj1, result);
750
+ ucheb(x, 1.771285e-03, tj, tj1, result);
751
+ ucheb(x, 6.694026e-04, tj, tj1, result);
752
+ ucheb(x, -1.481190e-03, tj, tj1, result);
753
+ return result;
754
+ }
755
+
756
+
757
+ /*************************************************************************
758
+ Tail(S, 5, 10)
759
+ *************************************************************************/
760
+ static double utbln5n10(double s)
761
+ {
762
+ double result;
763
+ double x;
764
+ double tj;
765
+ double tj1;
766
+
767
+ result = 0;
768
+ x = ap::minreal(2*(s-0.000000e+00)/3.061862e+00-1, 1.0);
769
+ tj = 1;
770
+ tj1 = x;
771
+ ucheb(x, -3.425360e+00, tj, tj1, result);
772
+ ucheb(x, -3.496710e+00, tj, tj1, result);
773
+ ucheb(x, -8.587658e-01, tj, tj1, result);
774
+ ucheb(x, -1.812005e-01, tj, tj1, result);
775
+ ucheb(x, -5.427637e-02, tj, tj1, result);
776
+ ucheb(x, -1.515702e-02, tj, tj1, result);
777
+ ucheb(x, -5.406867e-04, tj, tj1, result);
778
+ ucheb(x, 4.796295e-03, tj, tj1, result);
779
+ ucheb(x, 5.237591e-03, tj, tj1, result);
780
+ ucheb(x, 3.654249e-03, tj, tj1, result);
781
+ ucheb(x, 2.181165e-03, tj, tj1, result);
782
+ ucheb(x, 2.011665e-03, tj, tj1, result);
783
+ ucheb(x, 2.417927e-03, tj, tj1, result);
784
+ ucheb(x, 2.534880e-03, tj, tj1, result);
785
+ ucheb(x, 1.791255e-03, tj, tj1, result);
786
+ ucheb(x, 1.871512e-05, tj, tj1, result);
787
+ return result;
788
+ }
789
+
790
+
791
+ /*************************************************************************
792
+ Tail(S, 5, 11)
793
+ *************************************************************************/
794
+ static double utbln5n11(double s)
795
+ {
796
+ double result;
797
+ double x;
798
+ double tj;
799
+ double tj1;
800
+
801
+ result = 0;
802
+ x = ap::minreal(2*(s-0.000000e+00)/3.115427e+00-1, 1.0);
803
+ tj = 1;
804
+ tj1 = x;
805
+ ucheb(x, -3.539959e+00, tj, tj1, result);
806
+ ucheb(x, -3.652998e+00, tj, tj1, result);
807
+ ucheb(x, -9.196503e-01, tj, tj1, result);
808
+ ucheb(x, -2.054363e-01, tj, tj1, result);
809
+ ucheb(x, -6.618848e-02, tj, tj1, result);
810
+ ucheb(x, -2.109411e-02, tj, tj1, result);
811
+ ucheb(x, -2.786668e-03, tj, tj1, result);
812
+ ucheb(x, 4.215648e-03, tj, tj1, result);
813
+ ucheb(x, 5.484220e-03, tj, tj1, result);
814
+ ucheb(x, 3.935991e-03, tj, tj1, result);
815
+ ucheb(x, 2.396191e-03, tj, tj1, result);
816
+ ucheb(x, 1.894177e-03, tj, tj1, result);
817
+ ucheb(x, 2.206979e-03, tj, tj1, result);
818
+ ucheb(x, 2.519055e-03, tj, tj1, result);
819
+ ucheb(x, 2.210326e-03, tj, tj1, result);
820
+ ucheb(x, 1.189679e-03, tj, tj1, result);
821
+ return result;
822
+ }
823
+
824
+
825
+ /*************************************************************************
826
+ Tail(S, 5, 12)
827
+ *************************************************************************/
828
+ static double utbln5n12(double s)
829
+ {
830
+ double result;
831
+ double x;
832
+ double tj;
833
+ double tj1;
834
+
835
+ result = 0;
836
+ x = ap::minreal(2*(s-0.000000e+00)/3.162278e+00-1, 1.0);
837
+ tj = 1;
838
+ tj1 = x;
839
+ ucheb(x, -3.644007e+00, tj, tj1, result);
840
+ ucheb(x, -3.796173e+00, tj, tj1, result);
841
+ ucheb(x, -9.771177e-01, tj, tj1, result);
842
+ ucheb(x, -2.290043e-01, tj, tj1, result);
843
+ ucheb(x, -7.794686e-02, tj, tj1, result);
844
+ ucheb(x, -2.702110e-02, tj, tj1, result);
845
+ ucheb(x, -5.185959e-03, tj, tj1, result);
846
+ ucheb(x, 3.416259e-03, tj, tj1, result);
847
+ ucheb(x, 5.592056e-03, tj, tj1, result);
848
+ ucheb(x, 4.201530e-03, tj, tj1, result);
849
+ ucheb(x, 2.754365e-03, tj, tj1, result);
850
+ ucheb(x, 1.978945e-03, tj, tj1, result);
851
+ ucheb(x, 2.012032e-03, tj, tj1, result);
852
+ ucheb(x, 2.304579e-03, tj, tj1, result);
853
+ ucheb(x, 2.100378e-03, tj, tj1, result);
854
+ ucheb(x, 1.728269e-03, tj, tj1, result);
855
+ return result;
856
+ }
857
+
858
+
859
+ /*************************************************************************
860
+ Tail(S, 5, 13)
861
+ *************************************************************************/
862
+ static double utbln5n13(double s)
863
+ {
864
+ double result;
865
+ double x;
866
+ double tj;
867
+ double tj1;
868
+
869
+ result = 0;
870
+ x = ap::minreal(2*(s-0.000000e+00)/3.203616e+00-1, 1.0);
871
+ tj = 1;
872
+ tj1 = x;
873
+ ucheb(x, -3.739120e+00, tj, tj1, result);
874
+ ucheb(x, -3.928117e+00, tj, tj1, result);
875
+ ucheb(x, -1.031605e+00, tj, tj1, result);
876
+ ucheb(x, -2.519403e-01, tj, tj1, result);
877
+ ucheb(x, -8.962648e-02, tj, tj1, result);
878
+ ucheb(x, -3.292183e-02, tj, tj1, result);
879
+ ucheb(x, -7.809293e-03, tj, tj1, result);
880
+ ucheb(x, 2.465156e-03, tj, tj1, result);
881
+ ucheb(x, 5.456278e-03, tj, tj1, result);
882
+ ucheb(x, 4.446055e-03, tj, tj1, result);
883
+ ucheb(x, 3.109490e-03, tj, tj1, result);
884
+ ucheb(x, 2.218256e-03, tj, tj1, result);
885
+ ucheb(x, 1.941479e-03, tj, tj1, result);
886
+ ucheb(x, 2.058603e-03, tj, tj1, result);
887
+ ucheb(x, 1.824402e-03, tj, tj1, result);
888
+ ucheb(x, 1.830947e-03, tj, tj1, result);
889
+ return result;
890
+ }
891
+
892
+
893
+ /*************************************************************************
894
+ Tail(S, 5, 14)
895
+ *************************************************************************/
896
+ static double utbln5n14(double s)
897
+ {
898
+ double result;
899
+ double x;
900
+ double tj;
901
+ double tj1;
902
+
903
+ result = 0;
904
+ x = ap::minreal(2*(s-0.000000e+00)/3.240370e+00-1, 1.0);
905
+ tj = 1;
906
+ tj1 = x;
907
+ ucheb(x, -3.826559e+00, tj, tj1, result);
908
+ ucheb(x, -4.050370e+00, tj, tj1, result);
909
+ ucheb(x, -1.083408e+00, tj, tj1, result);
910
+ ucheb(x, -2.743164e-01, tj, tj1, result);
911
+ ucheb(x, -1.012030e-01, tj, tj1, result);
912
+ ucheb(x, -3.884686e-02, tj, tj1, result);
913
+ ucheb(x, -1.059656e-02, tj, tj1, result);
914
+ ucheb(x, 1.327521e-03, tj, tj1, result);
915
+ ucheb(x, 5.134026e-03, tj, tj1, result);
916
+ ucheb(x, 4.584201e-03, tj, tj1, result);
917
+ ucheb(x, 3.440618e-03, tj, tj1, result);
918
+ ucheb(x, 2.524133e-03, tj, tj1, result);
919
+ ucheb(x, 1.990007e-03, tj, tj1, result);
920
+ ucheb(x, 1.887334e-03, tj, tj1, result);
921
+ ucheb(x, 1.534977e-03, tj, tj1, result);
922
+ ucheb(x, 1.705395e-03, tj, tj1, result);
923
+ return result;
924
+ }
925
+
926
+
927
+ /*************************************************************************
928
+ Tail(S, 5, 15)
929
+ *************************************************************************/
930
+ static double utbln5n15(double s)
931
+ {
932
+ double result;
933
+ double x;
934
+ double tj;
935
+ double tj1;
936
+
937
+ result = 0;
938
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
939
+ tj = 1;
940
+ tj1 = x;
941
+ ucheb(x, -3.851572e+00, tj, tj1, result);
942
+ ucheb(x, -4.082033e+00, tj, tj1, result);
943
+ ucheb(x, -1.095983e+00, tj, tj1, result);
944
+ ucheb(x, -2.814595e-01, tj, tj1, result);
945
+ ucheb(x, -1.073148e-01, tj, tj1, result);
946
+ ucheb(x, -4.420213e-02, tj, tj1, result);
947
+ ucheb(x, -1.517175e-02, tj, tj1, result);
948
+ ucheb(x, -2.344180e-03, tj, tj1, result);
949
+ ucheb(x, 2.371393e-03, tj, tj1, result);
950
+ ucheb(x, 2.711443e-03, tj, tj1, result);
951
+ ucheb(x, 2.228569e-03, tj, tj1, result);
952
+ ucheb(x, 1.683483e-03, tj, tj1, result);
953
+ ucheb(x, 1.267112e-03, tj, tj1, result);
954
+ ucheb(x, 1.156044e-03, tj, tj1, result);
955
+ ucheb(x, 9.131316e-04, tj, tj1, result);
956
+ ucheb(x, 1.301023e-03, tj, tj1, result);
957
+ return result;
958
+ }
959
+
960
+
961
+ /*************************************************************************
962
+ Tail(S, 5, 16)
963
+ *************************************************************************/
964
+ static double utbln5n16(double s)
965
+ {
966
+ double result;
967
+ double x;
968
+ double tj;
969
+ double tj1;
970
+
971
+ result = 0;
972
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
973
+ tj = 1;
974
+ tj1 = x;
975
+ ucheb(x, -3.852210e+00, tj, tj1, result);
976
+ ucheb(x, -4.077482e+00, tj, tj1, result);
977
+ ucheb(x, -1.091186e+00, tj, tj1, result);
978
+ ucheb(x, -2.797282e-01, tj, tj1, result);
979
+ ucheb(x, -1.084994e-01, tj, tj1, result);
980
+ ucheb(x, -4.667054e-02, tj, tj1, result);
981
+ ucheb(x, -1.843909e-02, tj, tj1, result);
982
+ ucheb(x, -5.456732e-03, tj, tj1, result);
983
+ ucheb(x, -5.039830e-04, tj, tj1, result);
984
+ ucheb(x, 4.723508e-04, tj, tj1, result);
985
+ ucheb(x, 3.940608e-04, tj, tj1, result);
986
+ ucheb(x, 1.478285e-04, tj, tj1, result);
987
+ ucheb(x, -1.649144e-04, tj, tj1, result);
988
+ ucheb(x, -4.237703e-04, tj, tj1, result);
989
+ ucheb(x, -4.707410e-04, tj, tj1, result);
990
+ ucheb(x, -1.874293e-04, tj, tj1, result);
991
+ return result;
992
+ }
993
+
994
+
995
+ /*************************************************************************
996
+ Tail(S, 5, 17)
997
+ *************************************************************************/
998
+ static double utbln5n17(double s)
999
+ {
1000
+ double result;
1001
+ double x;
1002
+ double tj;
1003
+ double tj1;
1004
+
1005
+ result = 0;
1006
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1007
+ tj = 1;
1008
+ tj1 = x;
1009
+ ucheb(x, -3.851752e+00, tj, tj1, result);
1010
+ ucheb(x, -4.071259e+00, tj, tj1, result);
1011
+ ucheb(x, -1.084700e+00, tj, tj1, result);
1012
+ ucheb(x, -2.758898e-01, tj, tj1, result);
1013
+ ucheb(x, -1.073846e-01, tj, tj1, result);
1014
+ ucheb(x, -4.684838e-02, tj, tj1, result);
1015
+ ucheb(x, -1.964936e-02, tj, tj1, result);
1016
+ ucheb(x, -6.782442e-03, tj, tj1, result);
1017
+ ucheb(x, -1.956362e-03, tj, tj1, result);
1018
+ ucheb(x, -5.984727e-04, tj, tj1, result);
1019
+ ucheb(x, -5.196936e-04, tj, tj1, result);
1020
+ ucheb(x, -5.558262e-04, tj, tj1, result);
1021
+ ucheb(x, -8.690746e-04, tj, tj1, result);
1022
+ ucheb(x, -1.364855e-03, tj, tj1, result);
1023
+ ucheb(x, -1.401006e-03, tj, tj1, result);
1024
+ ucheb(x, -1.546748e-03, tj, tj1, result);
1025
+ return result;
1026
+ }
1027
+
1028
+
1029
+ /*************************************************************************
1030
+ Tail(S, 5, 18)
1031
+ *************************************************************************/
1032
+ static double utbln5n18(double s)
1033
+ {
1034
+ double result;
1035
+ double x;
1036
+ double tj;
1037
+ double tj1;
1038
+
1039
+ result = 0;
1040
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1041
+ tj = 1;
1042
+ tj1 = x;
1043
+ ucheb(x, -3.850840e+00, tj, tj1, result);
1044
+ ucheb(x, -4.064799e+00, tj, tj1, result);
1045
+ ucheb(x, -1.077651e+00, tj, tj1, result);
1046
+ ucheb(x, -2.712659e-01, tj, tj1, result);
1047
+ ucheb(x, -1.049217e-01, tj, tj1, result);
1048
+ ucheb(x, -4.571333e-02, tj, tj1, result);
1049
+ ucheb(x, -1.929809e-02, tj, tj1, result);
1050
+ ucheb(x, -6.752044e-03, tj, tj1, result);
1051
+ ucheb(x, -1.949464e-03, tj, tj1, result);
1052
+ ucheb(x, -3.896101e-04, tj, tj1, result);
1053
+ ucheb(x, -4.614460e-05, tj, tj1, result);
1054
+ ucheb(x, 1.384357e-04, tj, tj1, result);
1055
+ ucheb(x, -6.489113e-05, tj, tj1, result);
1056
+ ucheb(x, -6.445725e-04, tj, tj1, result);
1057
+ ucheb(x, -8.945636e-04, tj, tj1, result);
1058
+ ucheb(x, -1.424653e-03, tj, tj1, result);
1059
+ return result;
1060
+ }
1061
+
1062
+
1063
+ /*************************************************************************
1064
+ Tail(S, 5, 19)
1065
+ *************************************************************************/
1066
+ static double utbln5n19(double s)
1067
+ {
1068
+ double result;
1069
+ double x;
1070
+ double tj;
1071
+ double tj1;
1072
+
1073
+ result = 0;
1074
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1075
+ tj = 1;
1076
+ tj1 = x;
1077
+ ucheb(x, -3.850027e+00, tj, tj1, result);
1078
+ ucheb(x, -4.059159e+00, tj, tj1, result);
1079
+ ucheb(x, -1.071106e+00, tj, tj1, result);
1080
+ ucheb(x, -2.669960e-01, tj, tj1, result);
1081
+ ucheb(x, -1.022780e-01, tj, tj1, result);
1082
+ ucheb(x, -4.442555e-02, tj, tj1, result);
1083
+ ucheb(x, -1.851335e-02, tj, tj1, result);
1084
+ ucheb(x, -6.433865e-03, tj, tj1, result);
1085
+ ucheb(x, -1.514465e-03, tj, tj1, result);
1086
+ ucheb(x, 1.332989e-04, tj, tj1, result);
1087
+ ucheb(x, 8.606099e-04, tj, tj1, result);
1088
+ ucheb(x, 1.341945e-03, tj, tj1, result);
1089
+ ucheb(x, 1.402164e-03, tj, tj1, result);
1090
+ ucheb(x, 1.039761e-03, tj, tj1, result);
1091
+ ucheb(x, 5.512831e-04, tj, tj1, result);
1092
+ ucheb(x, -3.284427e-05, tj, tj1, result);
1093
+ return result;
1094
+ }
1095
+
1096
+
1097
+ /*************************************************************************
1098
+ Tail(S, 5, 20)
1099
+ *************************************************************************/
1100
+ static double utbln5n20(double s)
1101
+ {
1102
+ double result;
1103
+ double x;
1104
+ double tj;
1105
+ double tj1;
1106
+
1107
+ result = 0;
1108
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1109
+ tj = 1;
1110
+ tj1 = x;
1111
+ ucheb(x, -3.849651e+00, tj, tj1, result);
1112
+ ucheb(x, -4.054729e+00, tj, tj1, result);
1113
+ ucheb(x, -1.065747e+00, tj, tj1, result);
1114
+ ucheb(x, -2.636243e-01, tj, tj1, result);
1115
+ ucheb(x, -1.003234e-01, tj, tj1, result);
1116
+ ucheb(x, -4.372789e-02, tj, tj1, result);
1117
+ ucheb(x, -1.831551e-02, tj, tj1, result);
1118
+ ucheb(x, -6.763090e-03, tj, tj1, result);
1119
+ ucheb(x, -1.830626e-03, tj, tj1, result);
1120
+ ucheb(x, -2.122384e-04, tj, tj1, result);
1121
+ ucheb(x, 8.108328e-04, tj, tj1, result);
1122
+ ucheb(x, 1.557983e-03, tj, tj1, result);
1123
+ ucheb(x, 1.945666e-03, tj, tj1, result);
1124
+ ucheb(x, 1.965696e-03, tj, tj1, result);
1125
+ ucheb(x, 1.493236e-03, tj, tj1, result);
1126
+ ucheb(x, 1.162591e-03, tj, tj1, result);
1127
+ return result;
1128
+ }
1129
+
1130
+
1131
+ /*************************************************************************
1132
+ Tail(S, 5, 21)
1133
+ *************************************************************************/
1134
+ static double utbln5n21(double s)
1135
+ {
1136
+ double result;
1137
+ double x;
1138
+ double tj;
1139
+ double tj1;
1140
+
1141
+ result = 0;
1142
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1143
+ tj = 1;
1144
+ tj1 = x;
1145
+ ucheb(x, -3.849649e+00, tj, tj1, result);
1146
+ ucheb(x, -4.051155e+00, tj, tj1, result);
1147
+ ucheb(x, -1.061430e+00, tj, tj1, result);
1148
+ ucheb(x, -2.608869e-01, tj, tj1, result);
1149
+ ucheb(x, -9.902788e-02, tj, tj1, result);
1150
+ ucheb(x, -4.346562e-02, tj, tj1, result);
1151
+ ucheb(x, -1.874709e-02, tj, tj1, result);
1152
+ ucheb(x, -7.682887e-03, tj, tj1, result);
1153
+ ucheb(x, -3.026206e-03, tj, tj1, result);
1154
+ ucheb(x, -1.534551e-03, tj, tj1, result);
1155
+ ucheb(x, -4.990575e-04, tj, tj1, result);
1156
+ ucheb(x, 3.713334e-04, tj, tj1, result);
1157
+ ucheb(x, 9.737011e-04, tj, tj1, result);
1158
+ ucheb(x, 1.304571e-03, tj, tj1, result);
1159
+ ucheb(x, 1.133110e-03, tj, tj1, result);
1160
+ ucheb(x, 1.123457e-03, tj, tj1, result);
1161
+ return result;
1162
+ }
1163
+
1164
+
1165
+ /*************************************************************************
1166
+ Tail(S, 5, 22)
1167
+ *************************************************************************/
1168
+ static double utbln5n22(double s)
1169
+ {
1170
+ double result;
1171
+ double x;
1172
+ double tj;
1173
+ double tj1;
1174
+
1175
+ result = 0;
1176
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1177
+ tj = 1;
1178
+ tj1 = x;
1179
+ ucheb(x, -3.849598e+00, tj, tj1, result);
1180
+ ucheb(x, -4.047605e+00, tj, tj1, result);
1181
+ ucheb(x, -1.057264e+00, tj, tj1, result);
1182
+ ucheb(x, -2.579513e-01, tj, tj1, result);
1183
+ ucheb(x, -9.749602e-02, tj, tj1, result);
1184
+ ucheb(x, -4.275137e-02, tj, tj1, result);
1185
+ ucheb(x, -1.881768e-02, tj, tj1, result);
1186
+ ucheb(x, -8.177374e-03, tj, tj1, result);
1187
+ ucheb(x, -3.981056e-03, tj, tj1, result);
1188
+ ucheb(x, -2.696290e-03, tj, tj1, result);
1189
+ ucheb(x, -1.886803e-03, tj, tj1, result);
1190
+ ucheb(x, -1.085378e-03, tj, tj1, result);
1191
+ ucheb(x, -4.675242e-04, tj, tj1, result);
1192
+ ucheb(x, -5.426367e-05, tj, tj1, result);
1193
+ ucheb(x, 1.039613e-04, tj, tj1, result);
1194
+ ucheb(x, 2.662378e-04, tj, tj1, result);
1195
+ return result;
1196
+ }
1197
+
1198
+
1199
+ /*************************************************************************
1200
+ Tail(S, 5, 23)
1201
+ *************************************************************************/
1202
+ static double utbln5n23(double s)
1203
+ {
1204
+ double result;
1205
+ double x;
1206
+ double tj;
1207
+ double tj1;
1208
+
1209
+ result = 0;
1210
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1211
+ tj = 1;
1212
+ tj1 = x;
1213
+ ucheb(x, -3.849269e+00, tj, tj1, result);
1214
+ ucheb(x, -4.043761e+00, tj, tj1, result);
1215
+ ucheb(x, -1.052735e+00, tj, tj1, result);
1216
+ ucheb(x, -2.544683e-01, tj, tj1, result);
1217
+ ucheb(x, -9.517503e-02, tj, tj1, result);
1218
+ ucheb(x, -4.112082e-02, tj, tj1, result);
1219
+ ucheb(x, -1.782070e-02, tj, tj1, result);
1220
+ ucheb(x, -7.549483e-03, tj, tj1, result);
1221
+ ucheb(x, -3.747329e-03, tj, tj1, result);
1222
+ ucheb(x, -2.694263e-03, tj, tj1, result);
1223
+ ucheb(x, -2.147141e-03, tj, tj1, result);
1224
+ ucheb(x, -1.526209e-03, tj, tj1, result);
1225
+ ucheb(x, -1.039173e-03, tj, tj1, result);
1226
+ ucheb(x, -7.235615e-04, tj, tj1, result);
1227
+ ucheb(x, -4.656546e-04, tj, tj1, result);
1228
+ ucheb(x, -3.014423e-04, tj, tj1, result);
1229
+ return result;
1230
+ }
1231
+
1232
+
1233
+ /*************************************************************************
1234
+ Tail(S, 5, 24)
1235
+ *************************************************************************/
1236
+ static double utbln5n24(double s)
1237
+ {
1238
+ double result;
1239
+ double x;
1240
+ double tj;
1241
+ double tj1;
1242
+
1243
+ result = 0;
1244
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1245
+ tj = 1;
1246
+ tj1 = x;
1247
+ ucheb(x, -3.848925e+00, tj, tj1, result);
1248
+ ucheb(x, -4.040178e+00, tj, tj1, result);
1249
+ ucheb(x, -1.048355e+00, tj, tj1, result);
1250
+ ucheb(x, -2.510198e-01, tj, tj1, result);
1251
+ ucheb(x, -9.261134e-02, tj, tj1, result);
1252
+ ucheb(x, -3.915864e-02, tj, tj1, result);
1253
+ ucheb(x, -1.627423e-02, tj, tj1, result);
1254
+ ucheb(x, -6.307345e-03, tj, tj1, result);
1255
+ ucheb(x, -2.732992e-03, tj, tj1, result);
1256
+ ucheb(x, -1.869652e-03, tj, tj1, result);
1257
+ ucheb(x, -1.494176e-03, tj, tj1, result);
1258
+ ucheb(x, -1.047533e-03, tj, tj1, result);
1259
+ ucheb(x, -7.178439e-04, tj, tj1, result);
1260
+ ucheb(x, -5.424171e-04, tj, tj1, result);
1261
+ ucheb(x, -3.829195e-04, tj, tj1, result);
1262
+ ucheb(x, -2.840810e-04, tj, tj1, result);
1263
+ return result;
1264
+ }
1265
+
1266
+
1267
+ /*************************************************************************
1268
+ Tail(S, 5, 25)
1269
+ *************************************************************************/
1270
+ static double utbln5n25(double s)
1271
+ {
1272
+ double result;
1273
+ double x;
1274
+ double tj;
1275
+ double tj1;
1276
+
1277
+ result = 0;
1278
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1279
+ tj = 1;
1280
+ tj1 = x;
1281
+ ucheb(x, -3.848937e+00, tj, tj1, result);
1282
+ ucheb(x, -4.037512e+00, tj, tj1, result);
1283
+ ucheb(x, -1.044866e+00, tj, tj1, result);
1284
+ ucheb(x, -2.483269e-01, tj, tj1, result);
1285
+ ucheb(x, -9.063682e-02, tj, tj1, result);
1286
+ ucheb(x, -3.767778e-02, tj, tj1, result);
1287
+ ucheb(x, -1.508540e-02, tj, tj1, result);
1288
+ ucheb(x, -5.332756e-03, tj, tj1, result);
1289
+ ucheb(x, -1.881511e-03, tj, tj1, result);
1290
+ ucheb(x, -1.124041e-03, tj, tj1, result);
1291
+ ucheb(x, -8.368456e-04, tj, tj1, result);
1292
+ ucheb(x, -4.930499e-04, tj, tj1, result);
1293
+ ucheb(x, -2.779630e-04, tj, tj1, result);
1294
+ ucheb(x, -2.029528e-04, tj, tj1, result);
1295
+ ucheb(x, -1.658678e-04, tj, tj1, result);
1296
+ ucheb(x, -1.289695e-04, tj, tj1, result);
1297
+ return result;
1298
+ }
1299
+
1300
+
1301
+ /*************************************************************************
1302
+ Tail(S, 5, 26)
1303
+ *************************************************************************/
1304
+ static double utbln5n26(double s)
1305
+ {
1306
+ double result;
1307
+ double x;
1308
+ double tj;
1309
+ double tj1;
1310
+
1311
+ result = 0;
1312
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1313
+ tj = 1;
1314
+ tj1 = x;
1315
+ ucheb(x, -3.849416e+00, tj, tj1, result);
1316
+ ucheb(x, -4.035915e+00, tj, tj1, result);
1317
+ ucheb(x, -1.042493e+00, tj, tj1, result);
1318
+ ucheb(x, -2.466021e-01, tj, tj1, result);
1319
+ ucheb(x, -8.956432e-02, tj, tj1, result);
1320
+ ucheb(x, -3.698914e-02, tj, tj1, result);
1321
+ ucheb(x, -1.465689e-02, tj, tj1, result);
1322
+ ucheb(x, -5.035254e-03, tj, tj1, result);
1323
+ ucheb(x, -1.674614e-03, tj, tj1, result);
1324
+ ucheb(x, -9.492734e-04, tj, tj1, result);
1325
+ ucheb(x, -7.014021e-04, tj, tj1, result);
1326
+ ucheb(x, -3.944953e-04, tj, tj1, result);
1327
+ ucheb(x, -2.255750e-04, tj, tj1, result);
1328
+ ucheb(x, -2.075841e-04, tj, tj1, result);
1329
+ ucheb(x, -1.989330e-04, tj, tj1, result);
1330
+ ucheb(x, -2.134862e-04, tj, tj1, result);
1331
+ return result;
1332
+ }
1333
+
1334
+
1335
+ /*************************************************************************
1336
+ Tail(S, 5, 27)
1337
+ *************************************************************************/
1338
+ static double utbln5n27(double s)
1339
+ {
1340
+ double result;
1341
+ double x;
1342
+ double tj;
1343
+ double tj1;
1344
+
1345
+ result = 0;
1346
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1347
+ tj = 1;
1348
+ tj1 = x;
1349
+ ucheb(x, -3.850070e+00, tj, tj1, result);
1350
+ ucheb(x, -4.034815e+00, tj, tj1, result);
1351
+ ucheb(x, -1.040650e+00, tj, tj1, result);
1352
+ ucheb(x, -2.453117e-01, tj, tj1, result);
1353
+ ucheb(x, -8.886426e-02, tj, tj1, result);
1354
+ ucheb(x, -3.661702e-02, tj, tj1, result);
1355
+ ucheb(x, -1.452346e-02, tj, tj1, result);
1356
+ ucheb(x, -5.002476e-03, tj, tj1, result);
1357
+ ucheb(x, -1.720126e-03, tj, tj1, result);
1358
+ ucheb(x, -1.001400e-03, tj, tj1, result);
1359
+ ucheb(x, -7.729826e-04, tj, tj1, result);
1360
+ ucheb(x, -4.740640e-04, tj, tj1, result);
1361
+ ucheb(x, -3.206333e-04, tj, tj1, result);
1362
+ ucheb(x, -3.366093e-04, tj, tj1, result);
1363
+ ucheb(x, -3.193471e-04, tj, tj1, result);
1364
+ ucheb(x, -3.804091e-04, tj, tj1, result);
1365
+ return result;
1366
+ }
1367
+
1368
+
1369
+ /*************************************************************************
1370
+ Tail(S, 5, 28)
1371
+ *************************************************************************/
1372
+ static double utbln5n28(double s)
1373
+ {
1374
+ double result;
1375
+ double x;
1376
+ double tj;
1377
+ double tj1;
1378
+
1379
+ result = 0;
1380
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1381
+ tj = 1;
1382
+ tj1 = x;
1383
+ ucheb(x, -3.850668e+00, tj, tj1, result);
1384
+ ucheb(x, -4.033786e+00, tj, tj1, result);
1385
+ ucheb(x, -1.038853e+00, tj, tj1, result);
1386
+ ucheb(x, -2.440281e-01, tj, tj1, result);
1387
+ ucheb(x, -8.806020e-02, tj, tj1, result);
1388
+ ucheb(x, -3.612883e-02, tj, tj1, result);
1389
+ ucheb(x, -1.420436e-02, tj, tj1, result);
1390
+ ucheb(x, -4.787982e-03, tj, tj1, result);
1391
+ ucheb(x, -1.535230e-03, tj, tj1, result);
1392
+ ucheb(x, -8.263121e-04, tj, tj1, result);
1393
+ ucheb(x, -5.849609e-04, tj, tj1, result);
1394
+ ucheb(x, -2.863967e-04, tj, tj1, result);
1395
+ ucheb(x, -1.391610e-04, tj, tj1, result);
1396
+ ucheb(x, -1.720294e-04, tj, tj1, result);
1397
+ ucheb(x, -1.952273e-04, tj, tj1, result);
1398
+ ucheb(x, -2.901413e-04, tj, tj1, result);
1399
+ return result;
1400
+ }
1401
+
1402
+
1403
+ /*************************************************************************
1404
+ Tail(S, 5, 29)
1405
+ *************************************************************************/
1406
+ static double utbln5n29(double s)
1407
+ {
1408
+ double result;
1409
+ double x;
1410
+ double tj;
1411
+ double tj1;
1412
+
1413
+ result = 0;
1414
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1415
+ tj = 1;
1416
+ tj1 = x;
1417
+ ucheb(x, -3.851217e+00, tj, tj1, result);
1418
+ ucheb(x, -4.032834e+00, tj, tj1, result);
1419
+ ucheb(x, -1.037113e+00, tj, tj1, result);
1420
+ ucheb(x, -2.427762e-01, tj, tj1, result);
1421
+ ucheb(x, -8.719146e-02, tj, tj1, result);
1422
+ ucheb(x, -3.557172e-02, tj, tj1, result);
1423
+ ucheb(x, -1.375498e-02, tj, tj1, result);
1424
+ ucheb(x, -4.452033e-03, tj, tj1, result);
1425
+ ucheb(x, -1.187516e-03, tj, tj1, result);
1426
+ ucheb(x, -4.916936e-04, tj, tj1, result);
1427
+ ucheb(x, -2.065533e-04, tj, tj1, result);
1428
+ ucheb(x, 1.067301e-04, tj, tj1, result);
1429
+ ucheb(x, 2.615824e-04, tj, tj1, result);
1430
+ ucheb(x, 2.432244e-04, tj, tj1, result);
1431
+ ucheb(x, 1.417795e-04, tj, tj1, result);
1432
+ ucheb(x, 4.710038e-05, tj, tj1, result);
1433
+ return result;
1434
+ }
1435
+
1436
+
1437
+ /*************************************************************************
1438
+ Tail(S, 5, 30)
1439
+ *************************************************************************/
1440
+ static double utbln5n30(double s)
1441
+ {
1442
+ double result;
1443
+ double x;
1444
+ double tj;
1445
+ double tj1;
1446
+
1447
+ result = 0;
1448
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1449
+ tj = 1;
1450
+ tj1 = x;
1451
+ ucheb(x, -3.851845e+00, tj, tj1, result);
1452
+ ucheb(x, -4.032148e+00, tj, tj1, result);
1453
+ ucheb(x, -1.035679e+00, tj, tj1, result);
1454
+ ucheb(x, -2.417758e-01, tj, tj1, result);
1455
+ ucheb(x, -8.655330e-02, tj, tj1, result);
1456
+ ucheb(x, -3.522132e-02, tj, tj1, result);
1457
+ ucheb(x, -1.352106e-02, tj, tj1, result);
1458
+ ucheb(x, -4.326911e-03, tj, tj1, result);
1459
+ ucheb(x, -1.064969e-03, tj, tj1, result);
1460
+ ucheb(x, -3.813321e-04, tj, tj1, result);
1461
+ ucheb(x, -5.683881e-05, tj, tj1, result);
1462
+ ucheb(x, 2.813346e-04, tj, tj1, result);
1463
+ ucheb(x, 4.627085e-04, tj, tj1, result);
1464
+ ucheb(x, 4.832107e-04, tj, tj1, result);
1465
+ ucheb(x, 3.519336e-04, tj, tj1, result);
1466
+ ucheb(x, 2.888530e-04, tj, tj1, result);
1467
+ return result;
1468
+ }
1469
+
1470
+
1471
+ /*************************************************************************
1472
+ Tail(S, 5, 100)
1473
+ *************************************************************************/
1474
+ static double utbln5n100(double s)
1475
+ {
1476
+ double result;
1477
+ double x;
1478
+ double tj;
1479
+ double tj1;
1480
+
1481
+ result = 0;
1482
+ x = ap::minreal(2*(s-0.000000e+00)/3.250000e+00-1, 1.0);
1483
+ tj = 1;
1484
+ tj1 = x;
1485
+ ucheb(x, -3.877940e+00, tj, tj1, result);
1486
+ ucheb(x, -4.039324e+00, tj, tj1, result);
1487
+ ucheb(x, -1.022243e+00, tj, tj1, result);
1488
+ ucheb(x, -2.305825e-01, tj, tj1, result);
1489
+ ucheb(x, -7.960119e-02, tj, tj1, result);
1490
+ ucheb(x, -3.112000e-02, tj, tj1, result);
1491
+ ucheb(x, -1.138868e-02, tj, tj1, result);
1492
+ ucheb(x, -3.418164e-03, tj, tj1, result);
1493
+ ucheb(x, -9.174520e-04, tj, tj1, result);
1494
+ ucheb(x, -5.489617e-04, tj, tj1, result);
1495
+ ucheb(x, -3.878301e-04, tj, tj1, result);
1496
+ ucheb(x, -1.302233e-04, tj, tj1, result);
1497
+ ucheb(x, 1.054113e-05, tj, tj1, result);
1498
+ ucheb(x, 2.458862e-05, tj, tj1, result);
1499
+ ucheb(x, -4.186591e-06, tj, tj1, result);
1500
+ ucheb(x, -2.623412e-05, tj, tj1, result);
1501
+ return result;
1502
+ }
1503
+
1504
+
1505
+ /*************************************************************************
1506
+ Tail(S, 6, 6)
1507
+ *************************************************************************/
1508
+ static double utbln6n6(double s)
1509
+ {
1510
+ double result;
1511
+ double x;
1512
+ double tj;
1513
+ double tj1;
1514
+
1515
+ result = 0;
1516
+ x = ap::minreal(2*(s-0.000000e+00)/2.882307e+00-1, 1.0);
1517
+ tj = 1;
1518
+ tj1 = x;
1519
+ ucheb(x, -3.054075e+00, tj, tj1, result);
1520
+ ucheb(x, -2.998804e+00, tj, tj1, result);
1521
+ ucheb(x, -6.681518e-01, tj, tj1, result);
1522
+ ucheb(x, -1.067578e-01, tj, tj1, result);
1523
+ ucheb(x, -1.709435e-02, tj, tj1, result);
1524
+ ucheb(x, 9.952661e-04, tj, tj1, result);
1525
+ ucheb(x, 3.641700e-03, tj, tj1, result);
1526
+ ucheb(x, 2.304572e-03, tj, tj1, result);
1527
+ ucheb(x, 3.336275e-03, tj, tj1, result);
1528
+ ucheb(x, 4.770385e-03, tj, tj1, result);
1529
+ ucheb(x, 5.401891e-03, tj, tj1, result);
1530
+ ucheb(x, 2.246148e-03, tj, tj1, result);
1531
+ ucheb(x, -1.442663e-03, tj, tj1, result);
1532
+ ucheb(x, -2.502866e-03, tj, tj1, result);
1533
+ ucheb(x, -2.105855e-03, tj, tj1, result);
1534
+ ucheb(x, -4.739371e-04, tj, tj1, result);
1535
+ return result;
1536
+ }
1537
+
1538
+
1539
+ /*************************************************************************
1540
+ Tail(S, 6, 7)
1541
+ *************************************************************************/
1542
+ static double utbln6n7(double s)
1543
+ {
1544
+ double result;
1545
+ double x;
1546
+ double tj;
1547
+ double tj1;
1548
+
1549
+ result = 0;
1550
+ x = ap::minreal(2*(s-0.000000e+00)/3.000000e+00-1, 1.0);
1551
+ tj = 1;
1552
+ tj1 = x;
1553
+ ucheb(x, -3.265287e+00, tj, tj1, result);
1554
+ ucheb(x, -3.274613e+00, tj, tj1, result);
1555
+ ucheb(x, -7.582352e-01, tj, tj1, result);
1556
+ ucheb(x, -1.334293e-01, tj, tj1, result);
1557
+ ucheb(x, -2.915502e-02, tj, tj1, result);
1558
+ ucheb(x, -4.108091e-03, tj, tj1, result);
1559
+ ucheb(x, 1.546701e-03, tj, tj1, result);
1560
+ ucheb(x, 2.298827e-03, tj, tj1, result);
1561
+ ucheb(x, 2.891501e-03, tj, tj1, result);
1562
+ ucheb(x, 4.313717e-03, tj, tj1, result);
1563
+ ucheb(x, 4.989501e-03, tj, tj1, result);
1564
+ ucheb(x, 3.914594e-03, tj, tj1, result);
1565
+ ucheb(x, 1.062372e-03, tj, tj1, result);
1566
+ ucheb(x, -1.158841e-03, tj, tj1, result);
1567
+ ucheb(x, -1.596443e-03, tj, tj1, result);
1568
+ ucheb(x, -1.185662e-03, tj, tj1, result);
1569
+ return result;
1570
+ }
1571
+
1572
+
1573
+ /*************************************************************************
1574
+ Tail(S, 6, 8)
1575
+ *************************************************************************/
1576
+ static double utbln6n8(double s)
1577
+ {
1578
+ double result;
1579
+ double x;
1580
+ double tj;
1581
+ double tj1;
1582
+
1583
+ result = 0;
1584
+ x = ap::minreal(2*(s-0.000000e+00)/3.098387e+00-1, 1.0);
1585
+ tj = 1;
1586
+ tj1 = x;
1587
+ ucheb(x, -3.450954e+00, tj, tj1, result);
1588
+ ucheb(x, -3.520462e+00, tj, tj1, result);
1589
+ ucheb(x, -8.420299e-01, tj, tj1, result);
1590
+ ucheb(x, -1.604853e-01, tj, tj1, result);
1591
+ ucheb(x, -4.165840e-02, tj, tj1, result);
1592
+ ucheb(x, -1.008756e-02, tj, tj1, result);
1593
+ ucheb(x, -6.723402e-04, tj, tj1, result);
1594
+ ucheb(x, 1.843521e-03, tj, tj1, result);
1595
+ ucheb(x, 2.883405e-03, tj, tj1, result);
1596
+ ucheb(x, 3.720980e-03, tj, tj1, result);
1597
+ ucheb(x, 4.301709e-03, tj, tj1, result);
1598
+ ucheb(x, 3.948034e-03, tj, tj1, result);
1599
+ ucheb(x, 2.776243e-03, tj, tj1, result);
1600
+ ucheb(x, 8.623736e-04, tj, tj1, result);
1601
+ ucheb(x, -3.742068e-04, tj, tj1, result);
1602
+ ucheb(x, -9.796927e-04, tj, tj1, result);
1603
+ return result;
1604
+ }
1605
+
1606
+
1607
+ /*************************************************************************
1608
+ Tail(S, 6, 9)
1609
+ *************************************************************************/
1610
+ static double utbln6n9(double s)
1611
+ {
1612
+ double result;
1613
+ double x;
1614
+ double tj;
1615
+ double tj1;
1616
+
1617
+ result = 0;
1618
+ x = ap::minreal(2*(s-0.000000e+00)/3.181981e+00-1, 1.0);
1619
+ tj = 1;
1620
+ tj1 = x;
1621
+ ucheb(x, -3.616113e+00, tj, tj1, result);
1622
+ ucheb(x, -3.741650e+00, tj, tj1, result);
1623
+ ucheb(x, -9.204487e-01, tj, tj1, result);
1624
+ ucheb(x, -1.873068e-01, tj, tj1, result);
1625
+ ucheb(x, -5.446794e-02, tj, tj1, result);
1626
+ ucheb(x, -1.632286e-02, tj, tj1, result);
1627
+ ucheb(x, -3.266481e-03, tj, tj1, result);
1628
+ ucheb(x, 1.280067e-03, tj, tj1, result);
1629
+ ucheb(x, 2.780687e-03, tj, tj1, result);
1630
+ ucheb(x, 3.480242e-03, tj, tj1, result);
1631
+ ucheb(x, 3.592200e-03, tj, tj1, result);
1632
+ ucheb(x, 3.581019e-03, tj, tj1, result);
1633
+ ucheb(x, 3.264231e-03, tj, tj1, result);
1634
+ ucheb(x, 2.347174e-03, tj, tj1, result);
1635
+ ucheb(x, 1.167535e-03, tj, tj1, result);
1636
+ ucheb(x, -1.092185e-04, tj, tj1, result);
1637
+ return result;
1638
+ }
1639
+
1640
+
1641
+ /*************************************************************************
1642
+ Tail(S, 6, 10)
1643
+ *************************************************************************/
1644
+ static double utbln6n10(double s)
1645
+ {
1646
+ double result;
1647
+ double x;
1648
+ double tj;
1649
+ double tj1;
1650
+
1651
+ result = 0;
1652
+ x = ap::minreal(2*(s-0.000000e+00)/3.253957e+00-1, 1.0);
1653
+ tj = 1;
1654
+ tj1 = x;
1655
+ ucheb(x, -3.764382e+00, tj, tj1, result);
1656
+ ucheb(x, -3.942366e+00, tj, tj1, result);
1657
+ ucheb(x, -9.939896e-01, tj, tj1, result);
1658
+ ucheb(x, -2.137812e-01, tj, tj1, result);
1659
+ ucheb(x, -6.720270e-02, tj, tj1, result);
1660
+ ucheb(x, -2.281070e-02, tj, tj1, result);
1661
+ ucheb(x, -5.901060e-03, tj, tj1, result);
1662
+ ucheb(x, 3.824937e-04, tj, tj1, result);
1663
+ ucheb(x, 2.802812e-03, tj, tj1, result);
1664
+ ucheb(x, 3.258132e-03, tj, tj1, result);
1665
+ ucheb(x, 3.233536e-03, tj, tj1, result);
1666
+ ucheb(x, 3.085530e-03, tj, tj1, result);
1667
+ ucheb(x, 3.212151e-03, tj, tj1, result);
1668
+ ucheb(x, 3.001329e-03, tj, tj1, result);
1669
+ ucheb(x, 2.226048e-03, tj, tj1, result);
1670
+ ucheb(x, 1.035298e-03, tj, tj1, result);
1671
+ return result;
1672
+ }
1673
+
1674
+
1675
+ /*************************************************************************
1676
+ Tail(S, 6, 11)
1677
+ *************************************************************************/
1678
+ static double utbln6n11(double s)
1679
+ {
1680
+ double result;
1681
+ double x;
1682
+ double tj;
1683
+ double tj1;
1684
+
1685
+ result = 0;
1686
+ x = ap::minreal(2*(s-0.000000e+00)/3.316625e+00-1, 1.0);
1687
+ tj = 1;
1688
+ tj1 = x;
1689
+ ucheb(x, -3.898597e+00, tj, tj1, result);
1690
+ ucheb(x, -4.125710e+00, tj, tj1, result);
1691
+ ucheb(x, -1.063297e+00, tj, tj1, result);
1692
+ ucheb(x, -2.396852e-01, tj, tj1, result);
1693
+ ucheb(x, -7.990126e-02, tj, tj1, result);
1694
+ ucheb(x, -2.927977e-02, tj, tj1, result);
1695
+ ucheb(x, -8.726500e-03, tj, tj1, result);
1696
+ ucheb(x, -5.858745e-04, tj, tj1, result);
1697
+ ucheb(x, 2.654590e-03, tj, tj1, result);
1698
+ ucheb(x, 3.217736e-03, tj, tj1, result);
1699
+ ucheb(x, 2.989770e-03, tj, tj1, result);
1700
+ ucheb(x, 2.768493e-03, tj, tj1, result);
1701
+ ucheb(x, 2.924364e-03, tj, tj1, result);
1702
+ ucheb(x, 3.140215e-03, tj, tj1, result);
1703
+ ucheb(x, 2.647914e-03, tj, tj1, result);
1704
+ ucheb(x, 1.924802e-03, tj, tj1, result);
1705
+ return result;
1706
+ }
1707
+
1708
+
1709
+ /*************************************************************************
1710
+ Tail(S, 6, 12)
1711
+ *************************************************************************/
1712
+ static double utbln6n12(double s)
1713
+ {
1714
+ double result;
1715
+ double x;
1716
+ double tj;
1717
+ double tj1;
1718
+
1719
+ result = 0;
1720
+ x = ap::minreal(2*(s-0.000000e+00)/3.371709e+00-1, 1.0);
1721
+ tj = 1;
1722
+ tj1 = x;
1723
+ ucheb(x, -4.020941e+00, tj, tj1, result);
1724
+ ucheb(x, -4.294250e+00, tj, tj1, result);
1725
+ ucheb(x, -1.128842e+00, tj, tj1, result);
1726
+ ucheb(x, -2.650389e-01, tj, tj1, result);
1727
+ ucheb(x, -9.248611e-02, tj, tj1, result);
1728
+ ucheb(x, -3.578510e-02, tj, tj1, result);
1729
+ ucheb(x, -1.162852e-02, tj, tj1, result);
1730
+ ucheb(x, -1.746982e-03, tj, tj1, result);
1731
+ ucheb(x, 2.454209e-03, tj, tj1, result);
1732
+ ucheb(x, 3.128042e-03, tj, tj1, result);
1733
+ ucheb(x, 2.936650e-03, tj, tj1, result);
1734
+ ucheb(x, 2.530794e-03, tj, tj1, result);
1735
+ ucheb(x, 2.665192e-03, tj, tj1, result);
1736
+ ucheb(x, 2.994144e-03, tj, tj1, result);
1737
+ ucheb(x, 2.662249e-03, tj, tj1, result);
1738
+ ucheb(x, 2.368541e-03, tj, tj1, result);
1739
+ return result;
1740
+ }
1741
+
1742
+
1743
+ /*************************************************************************
1744
+ Tail(S, 6, 13)
1745
+ *************************************************************************/
1746
+ static double utbln6n13(double s)
1747
+ {
1748
+ double result;
1749
+ double x;
1750
+ double tj;
1751
+ double tj1;
1752
+
1753
+ result = 0;
1754
+ x = ap::minreal(2*(s-0.000000e+00)/3.420526e+00-1, 1.0);
1755
+ tj = 1;
1756
+ tj1 = x;
1757
+ ucheb(x, -4.133167e+00, tj, tj1, result);
1758
+ ucheb(x, -4.450016e+00, tj, tj1, result);
1759
+ ucheb(x, -1.191088e+00, tj, tj1, result);
1760
+ ucheb(x, -2.898220e-01, tj, tj1, result);
1761
+ ucheb(x, -1.050249e-01, tj, tj1, result);
1762
+ ucheb(x, -4.226901e-02, tj, tj1, result);
1763
+ ucheb(x, -1.471113e-02, tj, tj1, result);
1764
+ ucheb(x, -3.007470e-03, tj, tj1, result);
1765
+ ucheb(x, 2.049420e-03, tj, tj1, result);
1766
+ ucheb(x, 3.059074e-03, tj, tj1, result);
1767
+ ucheb(x, 2.881249e-03, tj, tj1, result);
1768
+ ucheb(x, 2.452780e-03, tj, tj1, result);
1769
+ ucheb(x, 2.441805e-03, tj, tj1, result);
1770
+ ucheb(x, 2.787493e-03, tj, tj1, result);
1771
+ ucheb(x, 2.483957e-03, tj, tj1, result);
1772
+ ucheb(x, 2.481590e-03, tj, tj1, result);
1773
+ return result;
1774
+ }
1775
+
1776
+
1777
+ /*************************************************************************
1778
+ Tail(S, 6, 14)
1779
+ *************************************************************************/
1780
+ static double utbln6n14(double s)
1781
+ {
1782
+ double result;
1783
+ double x;
1784
+ double tj;
1785
+ double tj1;
1786
+
1787
+ result = 0;
1788
+ x = ap::minreal(2*(s-0.000000e+00)/3.450000e+00-1, 1.0);
1789
+ tj = 1;
1790
+ tj1 = x;
1791
+ ucheb(x, -4.201268e+00, tj, tj1, result);
1792
+ ucheb(x, -4.542568e+00, tj, tj1, result);
1793
+ ucheb(x, -1.226965e+00, tj, tj1, result);
1794
+ ucheb(x, -3.046029e-01, tj, tj1, result);
1795
+ ucheb(x, -1.136657e-01, tj, tj1, result);
1796
+ ucheb(x, -4.786757e-02, tj, tj1, result);
1797
+ ucheb(x, -1.843748e-02, tj, tj1, result);
1798
+ ucheb(x, -5.588022e-03, tj, tj1, result);
1799
+ ucheb(x, 2.253029e-04, tj, tj1, result);
1800
+ ucheb(x, 1.667188e-03, tj, tj1, result);
1801
+ ucheb(x, 1.788330e-03, tj, tj1, result);
1802
+ ucheb(x, 1.474545e-03, tj, tj1, result);
1803
+ ucheb(x, 1.540494e-03, tj, tj1, result);
1804
+ ucheb(x, 1.951188e-03, tj, tj1, result);
1805
+ ucheb(x, 1.863323e-03, tj, tj1, result);
1806
+ ucheb(x, 2.220904e-03, tj, tj1, result);
1807
+ return result;
1808
+ }
1809
+
1810
+
1811
+ /*************************************************************************
1812
+ Tail(S, 6, 15)
1813
+ *************************************************************************/
1814
+ static double utbln6n15(double s)
1815
+ {
1816
+ double result;
1817
+ double x;
1818
+ double tj;
1819
+ double tj1;
1820
+
1821
+ result = 0;
1822
+ x = ap::minreal(2*(s-0.000000e+00)/3.450000e+00-1, 1.0);
1823
+ tj = 1;
1824
+ tj1 = x;
1825
+ ucheb(x, -4.195689e+00, tj, tj1, result);
1826
+ ucheb(x, -4.526567e+00, tj, tj1, result);
1827
+ ucheb(x, -1.213617e+00, tj, tj1, result);
1828
+ ucheb(x, -2.975035e-01, tj, tj1, result);
1829
+ ucheb(x, -1.118480e-01, tj, tj1, result);
1830
+ ucheb(x, -4.859142e-02, tj, tj1, result);
1831
+ ucheb(x, -2.083312e-02, tj, tj1, result);
1832
+ ucheb(x, -8.298720e-03, tj, tj1, result);
1833
+ ucheb(x, -2.766708e-03, tj, tj1, result);
1834
+ ucheb(x, -1.026356e-03, tj, tj1, result);
1835
+ ucheb(x, -9.093113e-04, tj, tj1, result);
1836
+ ucheb(x, -1.135168e-03, tj, tj1, result);
1837
+ ucheb(x, -1.136376e-03, tj, tj1, result);
1838
+ ucheb(x, -8.190870e-04, tj, tj1, result);
1839
+ ucheb(x, -4.435972e-04, tj, tj1, result);
1840
+ ucheb(x, 1.413129e-04, tj, tj1, result);
1841
+ return result;
1842
+ }
1843
+
1844
+
1845
+ /*************************************************************************
1846
+ Tail(S, 6, 30)
1847
+ *************************************************************************/
1848
+ static double utbln6n30(double s)
1849
+ {
1850
+ double result;
1851
+ double x;
1852
+ double tj;
1853
+ double tj1;
1854
+
1855
+ result = 0;
1856
+ x = ap::minreal(2*(s-0.000000e+00)/3.450000e+00-1, 1.0);
1857
+ tj = 1;
1858
+ tj1 = x;
1859
+ ucheb(x, -4.166269e+00, tj, tj1, result);
1860
+ ucheb(x, -4.427399e+00, tj, tj1, result);
1861
+ ucheb(x, -1.118239e+00, tj, tj1, result);
1862
+ ucheb(x, -2.360847e-01, tj, tj1, result);
1863
+ ucheb(x, -7.745885e-02, tj, tj1, result);
1864
+ ucheb(x, -3.025041e-02, tj, tj1, result);
1865
+ ucheb(x, -1.187179e-02, tj, tj1, result);
1866
+ ucheb(x, -4.432089e-03, tj, tj1, result);
1867
+ ucheb(x, -1.408451e-03, tj, tj1, result);
1868
+ ucheb(x, -4.388774e-04, tj, tj1, result);
1869
+ ucheb(x, -2.795560e-04, tj, tj1, result);
1870
+ ucheb(x, -2.304136e-04, tj, tj1, result);
1871
+ ucheb(x, -1.258516e-04, tj, tj1, result);
1872
+ ucheb(x, -4.180236e-05, tj, tj1, result);
1873
+ ucheb(x, -4.388679e-06, tj, tj1, result);
1874
+ ucheb(x, 4.836027e-06, tj, tj1, result);
1875
+ return result;
1876
+ }
1877
+
1878
+
1879
+ /*************************************************************************
1880
+ Tail(S, 6, 100)
1881
+ *************************************************************************/
1882
+ static double utbln6n100(double s)
1883
+ {
1884
+ double result;
1885
+ double x;
1886
+ double tj;
1887
+ double tj1;
1888
+
1889
+ result = 0;
1890
+ x = ap::minreal(2*(s-0.000000e+00)/3.450000e+00-1, 1.0);
1891
+ tj = 1;
1892
+ tj1 = x;
1893
+ ucheb(x, -4.181350e+00, tj, tj1, result);
1894
+ ucheb(x, -4.417919e+00, tj, tj1, result);
1895
+ ucheb(x, -1.094201e+00, tj, tj1, result);
1896
+ ucheb(x, -2.195883e-01, tj, tj1, result);
1897
+ ucheb(x, -6.818937e-02, tj, tj1, result);
1898
+ ucheb(x, -2.514202e-02, tj, tj1, result);
1899
+ ucheb(x, -9.125047e-03, tj, tj1, result);
1900
+ ucheb(x, -3.022148e-03, tj, tj1, result);
1901
+ ucheb(x, -7.284181e-04, tj, tj1, result);
1902
+ ucheb(x, -1.157766e-04, tj, tj1, result);
1903
+ ucheb(x, -1.023752e-04, tj, tj1, result);
1904
+ ucheb(x, -1.127985e-04, tj, tj1, result);
1905
+ ucheb(x, -5.221690e-05, tj, tj1, result);
1906
+ ucheb(x, -3.516179e-06, tj, tj1, result);
1907
+ ucheb(x, 9.501398e-06, tj, tj1, result);
1908
+ ucheb(x, 9.380220e-06, tj, tj1, result);
1909
+ return result;
1910
+ }
1911
+
1912
+
1913
+ /*************************************************************************
1914
+ Tail(S, 7, 7)
1915
+ *************************************************************************/
1916
+ static double utbln7n7(double s)
1917
+ {
1918
+ double result;
1919
+ double x;
1920
+ double tj;
1921
+ double tj1;
1922
+
1923
+ result = 0;
1924
+ x = ap::minreal(2*(s-0.000000e+00)/3.130495e+00-1, 1.0);
1925
+ tj = 1;
1926
+ tj1 = x;
1927
+ ucheb(x, -3.501264e+00, tj, tj1, result);
1928
+ ucheb(x, -3.584790e+00, tj, tj1, result);
1929
+ ucheb(x, -8.577311e-01, tj, tj1, result);
1930
+ ucheb(x, -1.617002e-01, tj, tj1, result);
1931
+ ucheb(x, -4.145186e-02, tj, tj1, result);
1932
+ ucheb(x, -1.023462e-02, tj, tj1, result);
1933
+ ucheb(x, -1.408251e-03, tj, tj1, result);
1934
+ ucheb(x, 8.626515e-04, tj, tj1, result);
1935
+ ucheb(x, 2.072492e-03, tj, tj1, result);
1936
+ ucheb(x, 3.722926e-03, tj, tj1, result);
1937
+ ucheb(x, 5.095445e-03, tj, tj1, result);
1938
+ ucheb(x, 4.842602e-03, tj, tj1, result);
1939
+ ucheb(x, 2.751427e-03, tj, tj1, result);
1940
+ ucheb(x, 2.008927e-04, tj, tj1, result);
1941
+ ucheb(x, -9.892431e-04, tj, tj1, result);
1942
+ ucheb(x, -8.772386e-04, tj, tj1, result);
1943
+ return result;
1944
+ }
1945
+
1946
+
1947
+ /*************************************************************************
1948
+ Tail(S, 7, 8)
1949
+ *************************************************************************/
1950
+ static double utbln7n8(double s)
1951
+ {
1952
+ double result;
1953
+ double x;
1954
+ double tj;
1955
+ double tj1;
1956
+
1957
+ result = 0;
1958
+ x = ap::minreal(2*(s-0.000000e+00)/3.240370e+00-1, 1.0);
1959
+ tj = 1;
1960
+ tj1 = x;
1961
+ ucheb(x, -3.709965e+00, tj, tj1, result);
1962
+ ucheb(x, -3.862154e+00, tj, tj1, result);
1963
+ ucheb(x, -9.504541e-01, tj, tj1, result);
1964
+ ucheb(x, -1.900195e-01, tj, tj1, result);
1965
+ ucheb(x, -5.439995e-02, tj, tj1, result);
1966
+ ucheb(x, -1.678028e-02, tj, tj1, result);
1967
+ ucheb(x, -4.485540e-03, tj, tj1, result);
1968
+ ucheb(x, -4.437047e-04, tj, tj1, result);
1969
+ ucheb(x, 1.440092e-03, tj, tj1, result);
1970
+ ucheb(x, 3.114227e-03, tj, tj1, result);
1971
+ ucheb(x, 4.516569e-03, tj, tj1, result);
1972
+ ucheb(x, 4.829457e-03, tj, tj1, result);
1973
+ ucheb(x, 3.787550e-03, tj, tj1, result);
1974
+ ucheb(x, 1.761866e-03, tj, tj1, result);
1975
+ ucheb(x, 1.991911e-04, tj, tj1, result);
1976
+ ucheb(x, -4.533481e-04, tj, tj1, result);
1977
+ return result;
1978
+ }
1979
+
1980
+
1981
+ /*************************************************************************
1982
+ Tail(S, 7, 9)
1983
+ *************************************************************************/
1984
+ static double utbln7n9(double s)
1985
+ {
1986
+ double result;
1987
+ double x;
1988
+ double tj;
1989
+ double tj1;
1990
+
1991
+ result = 0;
1992
+ x = ap::minreal(2*(s-0.000000e+00)/3.334314e+00-1, 1.0);
1993
+ tj = 1;
1994
+ tj1 = x;
1995
+ ucheb(x, -3.896550e+00, tj, tj1, result);
1996
+ ucheb(x, -4.112671e+00, tj, tj1, result);
1997
+ ucheb(x, -1.037277e+00, tj, tj1, result);
1998
+ ucheb(x, -2.181695e-01, tj, tj1, result);
1999
+ ucheb(x, -6.765190e-02, tj, tj1, result);
2000
+ ucheb(x, -2.360116e-02, tj, tj1, result);
2001
+ ucheb(x, -7.695960e-03, tj, tj1, result);
2002
+ ucheb(x, -1.780578e-03, tj, tj1, result);
2003
+ ucheb(x, 8.963843e-04, tj, tj1, result);
2004
+ ucheb(x, 2.616148e-03, tj, tj1, result);
2005
+ ucheb(x, 3.852104e-03, tj, tj1, result);
2006
+ ucheb(x, 4.390744e-03, tj, tj1, result);
2007
+ ucheb(x, 4.014041e-03, tj, tj1, result);
2008
+ ucheb(x, 2.888101e-03, tj, tj1, result);
2009
+ ucheb(x, 1.467474e-03, tj, tj1, result);
2010
+ ucheb(x, 4.004611e-04, tj, tj1, result);
2011
+ return result;
2012
+ }
2013
+
2014
+
2015
+ /*************************************************************************
2016
+ Tail(S, 7, 10)
2017
+ *************************************************************************/
2018
+ static double utbln7n10(double s)
2019
+ {
2020
+ double result;
2021
+ double x;
2022
+ double tj;
2023
+ double tj1;
2024
+
2025
+ result = 0;
2026
+ x = ap::minreal(2*(s-0.000000e+00)/3.415650e+00-1, 1.0);
2027
+ tj = 1;
2028
+ tj1 = x;
2029
+ ucheb(x, -4.064844e+00, tj, tj1, result);
2030
+ ucheb(x, -4.340749e+00, tj, tj1, result);
2031
+ ucheb(x, -1.118888e+00, tj, tj1, result);
2032
+ ucheb(x, -2.459730e-01, tj, tj1, result);
2033
+ ucheb(x, -8.097781e-02, tj, tj1, result);
2034
+ ucheb(x, -3.057688e-02, tj, tj1, result);
2035
+ ucheb(x, -1.097406e-02, tj, tj1, result);
2036
+ ucheb(x, -3.209262e-03, tj, tj1, result);
2037
+ ucheb(x, 4.065641e-04, tj, tj1, result);
2038
+ ucheb(x, 2.196677e-03, tj, tj1, result);
2039
+ ucheb(x, 3.313994e-03, tj, tj1, result);
2040
+ ucheb(x, 3.827157e-03, tj, tj1, result);
2041
+ ucheb(x, 3.822284e-03, tj, tj1, result);
2042
+ ucheb(x, 3.389090e-03, tj, tj1, result);
2043
+ ucheb(x, 2.340850e-03, tj, tj1, result);
2044
+ ucheb(x, 1.395172e-03, tj, tj1, result);
2045
+ return result;
2046
+ }
2047
+
2048
+
2049
+ /*************************************************************************
2050
+ Tail(S, 7, 11)
2051
+ *************************************************************************/
2052
+ static double utbln7n11(double s)
2053
+ {
2054
+ double result;
2055
+ double x;
2056
+ double tj;
2057
+ double tj1;
2058
+
2059
+ result = 0;
2060
+ x = ap::minreal(2*(s-0.000000e+00)/3.486817e+00-1, 1.0);
2061
+ tj = 1;
2062
+ tj1 = x;
2063
+ ucheb(x, -4.217795e+00, tj, tj1, result);
2064
+ ucheb(x, -4.549783e+00, tj, tj1, result);
2065
+ ucheb(x, -1.195905e+00, tj, tj1, result);
2066
+ ucheb(x, -2.733093e-01, tj, tj1, result);
2067
+ ucheb(x, -9.428447e-02, tj, tj1, result);
2068
+ ucheb(x, -3.760093e-02, tj, tj1, result);
2069
+ ucheb(x, -1.431676e-02, tj, tj1, result);
2070
+ ucheb(x, -4.717152e-03, tj, tj1, result);
2071
+ ucheb(x, -1.032199e-04, tj, tj1, result);
2072
+ ucheb(x, 1.832423e-03, tj, tj1, result);
2073
+ ucheb(x, 2.905979e-03, tj, tj1, result);
2074
+ ucheb(x, 3.302799e-03, tj, tj1, result);
2075
+ ucheb(x, 3.464371e-03, tj, tj1, result);
2076
+ ucheb(x, 3.456211e-03, tj, tj1, result);
2077
+ ucheb(x, 2.736244e-03, tj, tj1, result);
2078
+ ucheb(x, 2.140712e-03, tj, tj1, result);
2079
+ return result;
2080
+ }
2081
+
2082
+
2083
+ /*************************************************************************
2084
+ Tail(S, 7, 12)
2085
+ *************************************************************************/
2086
+ static double utbln7n12(double s)
2087
+ {
2088
+ double result;
2089
+ double x;
2090
+ double tj;
2091
+ double tj1;
2092
+
2093
+ result = 0;
2094
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2095
+ tj = 1;
2096
+ tj1 = x;
2097
+ ucheb(x, -4.235822e+00, tj, tj1, result);
2098
+ ucheb(x, -4.564100e+00, tj, tj1, result);
2099
+ ucheb(x, -1.190813e+00, tj, tj1, result);
2100
+ ucheb(x, -2.686546e-01, tj, tj1, result);
2101
+ ucheb(x, -9.395083e-02, tj, tj1, result);
2102
+ ucheb(x, -3.967359e-02, tj, tj1, result);
2103
+ ucheb(x, -1.747096e-02, tj, tj1, result);
2104
+ ucheb(x, -8.304144e-03, tj, tj1, result);
2105
+ ucheb(x, -3.903198e-03, tj, tj1, result);
2106
+ ucheb(x, -2.134906e-03, tj, tj1, result);
2107
+ ucheb(x, -1.175035e-03, tj, tj1, result);
2108
+ ucheb(x, -7.266224e-04, tj, tj1, result);
2109
+ ucheb(x, -1.892931e-04, tj, tj1, result);
2110
+ ucheb(x, 5.604706e-04, tj, tj1, result);
2111
+ ucheb(x, 9.070459e-04, tj, tj1, result);
2112
+ ucheb(x, 1.427010e-03, tj, tj1, result);
2113
+ return result;
2114
+ }
2115
+
2116
+
2117
+ /*************************************************************************
2118
+ Tail(S, 7, 13)
2119
+ *************************************************************************/
2120
+ static double utbln7n13(double s)
2121
+ {
2122
+ double result;
2123
+ double x;
2124
+ double tj;
2125
+ double tj1;
2126
+
2127
+ result = 0;
2128
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2129
+ tj = 1;
2130
+ tj1 = x;
2131
+ ucheb(x, -4.222204e+00, tj, tj1, result);
2132
+ ucheb(x, -4.532300e+00, tj, tj1, result);
2133
+ ucheb(x, -1.164642e+00, tj, tj1, result);
2134
+ ucheb(x, -2.523768e-01, tj, tj1, result);
2135
+ ucheb(x, -8.531984e-02, tj, tj1, result);
2136
+ ucheb(x, -3.467857e-02, tj, tj1, result);
2137
+ ucheb(x, -1.483804e-02, tj, tj1, result);
2138
+ ucheb(x, -6.524136e-03, tj, tj1, result);
2139
+ ucheb(x, -3.077740e-03, tj, tj1, result);
2140
+ ucheb(x, -1.745218e-03, tj, tj1, result);
2141
+ ucheb(x, -1.602085e-03, tj, tj1, result);
2142
+ ucheb(x, -1.828831e-03, tj, tj1, result);
2143
+ ucheb(x, -1.994070e-03, tj, tj1, result);
2144
+ ucheb(x, -1.873879e-03, tj, tj1, result);
2145
+ ucheb(x, -1.341937e-03, tj, tj1, result);
2146
+ ucheb(x, -8.706444e-04, tj, tj1, result);
2147
+ return result;
2148
+ }
2149
+
2150
+
2151
+ /*************************************************************************
2152
+ Tail(S, 7, 14)
2153
+ *************************************************************************/
2154
+ static double utbln7n14(double s)
2155
+ {
2156
+ double result;
2157
+ double x;
2158
+ double tj;
2159
+ double tj1;
2160
+
2161
+ result = 0;
2162
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2163
+ tj = 1;
2164
+ tj1 = x;
2165
+ ucheb(x, -4.211763e+00, tj, tj1, result);
2166
+ ucheb(x, -4.507542e+00, tj, tj1, result);
2167
+ ucheb(x, -1.143640e+00, tj, tj1, result);
2168
+ ucheb(x, -2.395755e-01, tj, tj1, result);
2169
+ ucheb(x, -7.808020e-02, tj, tj1, result);
2170
+ ucheb(x, -3.044259e-02, tj, tj1, result);
2171
+ ucheb(x, -1.182308e-02, tj, tj1, result);
2172
+ ucheb(x, -4.057325e-03, tj, tj1, result);
2173
+ ucheb(x, -5.724255e-04, tj, tj1, result);
2174
+ ucheb(x, 8.303900e-04, tj, tj1, result);
2175
+ ucheb(x, 1.113148e-03, tj, tj1, result);
2176
+ ucheb(x, 8.102514e-04, tj, tj1, result);
2177
+ ucheb(x, 3.559442e-04, tj, tj1, result);
2178
+ ucheb(x, 4.634986e-05, tj, tj1, result);
2179
+ ucheb(x, -8.776476e-05, tj, tj1, result);
2180
+ ucheb(x, 1.054489e-05, tj, tj1, result);
2181
+ return result;
2182
+ }
2183
+
2184
+
2185
+ /*************************************************************************
2186
+ Tail(S, 7, 15)
2187
+ *************************************************************************/
2188
+ static double utbln7n15(double s)
2189
+ {
2190
+ double result;
2191
+ double x;
2192
+ double tj;
2193
+ double tj1;
2194
+
2195
+ result = 0;
2196
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2197
+ tj = 1;
2198
+ tj1 = x;
2199
+ ucheb(x, -4.204898e+00, tj, tj1, result);
2200
+ ucheb(x, -4.489960e+00, tj, tj1, result);
2201
+ ucheb(x, -1.129172e+00, tj, tj1, result);
2202
+ ucheb(x, -2.316741e-01, tj, tj1, result);
2203
+ ucheb(x, -7.506107e-02, tj, tj1, result);
2204
+ ucheb(x, -2.983676e-02, tj, tj1, result);
2205
+ ucheb(x, -1.258013e-02, tj, tj1, result);
2206
+ ucheb(x, -5.262515e-03, tj, tj1, result);
2207
+ ucheb(x, -1.984156e-03, tj, tj1, result);
2208
+ ucheb(x, -3.912108e-04, tj, tj1, result);
2209
+ ucheb(x, 8.974023e-05, tj, tj1, result);
2210
+ ucheb(x, 6.056195e-05, tj, tj1, result);
2211
+ ucheb(x, -2.090842e-04, tj, tj1, result);
2212
+ ucheb(x, -5.232620e-04, tj, tj1, result);
2213
+ ucheb(x, -5.816339e-04, tj, tj1, result);
2214
+ ucheb(x, -7.020421e-04, tj, tj1, result);
2215
+ return result;
2216
+ }
2217
+
2218
+
2219
+ /*************************************************************************
2220
+ Tail(S, 7, 30)
2221
+ *************************************************************************/
2222
+ static double utbln7n30(double s)
2223
+ {
2224
+ double result;
2225
+ double x;
2226
+ double tj;
2227
+ double tj1;
2228
+
2229
+ result = 0;
2230
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2231
+ tj = 1;
2232
+ tj1 = x;
2233
+ ucheb(x, -4.176536e+00, tj, tj1, result);
2234
+ ucheb(x, -4.398705e+00, tj, tj1, result);
2235
+ ucheb(x, -1.045481e+00, tj, tj1, result);
2236
+ ucheb(x, -1.821982e-01, tj, tj1, result);
2237
+ ucheb(x, -4.962304e-02, tj, tj1, result);
2238
+ ucheb(x, -1.698132e-02, tj, tj1, result);
2239
+ ucheb(x, -6.062667e-03, tj, tj1, result);
2240
+ ucheb(x, -2.282353e-03, tj, tj1, result);
2241
+ ucheb(x, -8.014836e-04, tj, tj1, result);
2242
+ ucheb(x, -2.035683e-04, tj, tj1, result);
2243
+ ucheb(x, -1.004137e-05, tj, tj1, result);
2244
+ ucheb(x, 3.801453e-06, tj, tj1, result);
2245
+ ucheb(x, -1.920705e-05, tj, tj1, result);
2246
+ ucheb(x, -2.518735e-05, tj, tj1, result);
2247
+ ucheb(x, -1.821501e-05, tj, tj1, result);
2248
+ ucheb(x, -1.801008e-05, tj, tj1, result);
2249
+ return result;
2250
+ }
2251
+
2252
+
2253
+ /*************************************************************************
2254
+ Tail(S, 7, 100)
2255
+ *************************************************************************/
2256
+ static double utbln7n100(double s)
2257
+ {
2258
+ double result;
2259
+ double x;
2260
+ double tj;
2261
+ double tj1;
2262
+
2263
+ result = 0;
2264
+ x = ap::minreal(2*(s-0.000000e+00)/3.500000e+00-1, 1.0);
2265
+ tj = 1;
2266
+ tj1 = x;
2267
+ ucheb(x, -4.188337e+00, tj, tj1, result);
2268
+ ucheb(x, -4.386949e+00, tj, tj1, result);
2269
+ ucheb(x, -1.022834e+00, tj, tj1, result);
2270
+ ucheb(x, -1.686517e-01, tj, tj1, result);
2271
+ ucheb(x, -4.323516e-02, tj, tj1, result);
2272
+ ucheb(x, -1.399392e-02, tj, tj1, result);
2273
+ ucheb(x, -4.644333e-03, tj, tj1, result);
2274
+ ucheb(x, -1.617044e-03, tj, tj1, result);
2275
+ ucheb(x, -5.031396e-04, tj, tj1, result);
2276
+ ucheb(x, -8.792066e-05, tj, tj1, result);
2277
+ ucheb(x, 2.675457e-05, tj, tj1, result);
2278
+ ucheb(x, 1.673416e-05, tj, tj1, result);
2279
+ ucheb(x, -6.258552e-06, tj, tj1, result);
2280
+ ucheb(x, -8.174214e-06, tj, tj1, result);
2281
+ ucheb(x, -3.073644e-06, tj, tj1, result);
2282
+ ucheb(x, -1.349958e-06, tj, tj1, result);
2283
+ return result;
2284
+ }
2285
+
2286
+
2287
+ /*************************************************************************
2288
+ Tail(S, 8, 8)
2289
+ *************************************************************************/
2290
+ static double utbln8n8(double s)
2291
+ {
2292
+ double result;
2293
+ double x;
2294
+ double tj;
2295
+ double tj1;
2296
+
2297
+ result = 0;
2298
+ x = ap::minreal(2*(s-0.000000e+00)/3.360672e+00-1, 1.0);
2299
+ tj = 1;
2300
+ tj1 = x;
2301
+ ucheb(x, -3.940217e+00, tj, tj1, result);
2302
+ ucheb(x, -4.168913e+00, tj, tj1, result);
2303
+ ucheb(x, -1.051485e+00, tj, tj1, result);
2304
+ ucheb(x, -2.195325e-01, tj, tj1, result);
2305
+ ucheb(x, -6.775196e-02, tj, tj1, result);
2306
+ ucheb(x, -2.385506e-02, tj, tj1, result);
2307
+ ucheb(x, -8.244902e-03, tj, tj1, result);
2308
+ ucheb(x, -2.525632e-03, tj, tj1, result);
2309
+ ucheb(x, 2.771275e-04, tj, tj1, result);
2310
+ ucheb(x, 2.332874e-03, tj, tj1, result);
2311
+ ucheb(x, 4.079599e-03, tj, tj1, result);
2312
+ ucheb(x, 4.882551e-03, tj, tj1, result);
2313
+ ucheb(x, 4.407944e-03, tj, tj1, result);
2314
+ ucheb(x, 2.769844e-03, tj, tj1, result);
2315
+ ucheb(x, 1.062433e-03, tj, tj1, result);
2316
+ ucheb(x, 5.872535e-05, tj, tj1, result);
2317
+ return result;
2318
+ }
2319
+
2320
+
2321
+ /*************************************************************************
2322
+ Tail(S, 8, 9)
2323
+ *************************************************************************/
2324
+ static double utbln8n9(double s)
2325
+ {
2326
+ double result;
2327
+ double x;
2328
+ double tj;
2329
+ double tj1;
2330
+
2331
+ result = 0;
2332
+ x = ap::minreal(2*(s-0.000000e+00)/3.464102e+00-1, 1.0);
2333
+ tj = 1;
2334
+ tj1 = x;
2335
+ ucheb(x, -4.147004e+00, tj, tj1, result);
2336
+ ucheb(x, -4.446939e+00, tj, tj1, result);
2337
+ ucheb(x, -1.146155e+00, tj, tj1, result);
2338
+ ucheb(x, -2.488561e-01, tj, tj1, result);
2339
+ ucheb(x, -8.144561e-02, tj, tj1, result);
2340
+ ucheb(x, -3.116917e-02, tj, tj1, result);
2341
+ ucheb(x, -1.205667e-02, tj, tj1, result);
2342
+ ucheb(x, -4.515661e-03, tj, tj1, result);
2343
+ ucheb(x, -7.618616e-04, tj, tj1, result);
2344
+ ucheb(x, 1.599011e-03, tj, tj1, result);
2345
+ ucheb(x, 3.457324e-03, tj, tj1, result);
2346
+ ucheb(x, 4.482917e-03, tj, tj1, result);
2347
+ ucheb(x, 4.488267e-03, tj, tj1, result);
2348
+ ucheb(x, 3.469823e-03, tj, tj1, result);
2349
+ ucheb(x, 1.957591e-03, tj, tj1, result);
2350
+ ucheb(x, 8.058326e-04, tj, tj1, result);
2351
+ return result;
2352
+ }
2353
+
2354
+
2355
+ /*************************************************************************
2356
+ Tail(S, 8, 10)
2357
+ *************************************************************************/
2358
+ static double utbln8n10(double s)
2359
+ {
2360
+ double result;
2361
+ double x;
2362
+ double tj;
2363
+ double tj1;
2364
+
2365
+ result = 0;
2366
+ x = ap::minreal(2*(s-0.000000e+00)/3.554093e+00-1, 1.0);
2367
+ tj = 1;
2368
+ tj1 = x;
2369
+ ucheb(x, -4.334282e+00, tj, tj1, result);
2370
+ ucheb(x, -4.700860e+00, tj, tj1, result);
2371
+ ucheb(x, -1.235253e+00, tj, tj1, result);
2372
+ ucheb(x, -2.778489e-01, tj, tj1, result);
2373
+ ucheb(x, -9.527324e-02, tj, tj1, result);
2374
+ ucheb(x, -3.862885e-02, tj, tj1, result);
2375
+ ucheb(x, -1.589781e-02, tj, tj1, result);
2376
+ ucheb(x, -6.507355e-03, tj, tj1, result);
2377
+ ucheb(x, -1.717526e-03, tj, tj1, result);
2378
+ ucheb(x, 9.215726e-04, tj, tj1, result);
2379
+ ucheb(x, 2.848696e-03, tj, tj1, result);
2380
+ ucheb(x, 3.918854e-03, tj, tj1, result);
2381
+ ucheb(x, 4.219614e-03, tj, tj1, result);
2382
+ ucheb(x, 3.753761e-03, tj, tj1, result);
2383
+ ucheb(x, 2.573688e-03, tj, tj1, result);
2384
+ ucheb(x, 1.602177e-03, tj, tj1, result);
2385
+ return result;
2386
+ }
2387
+
2388
+
2389
+ /*************************************************************************
2390
+ Tail(S, 8, 11)
2391
+ *************************************************************************/
2392
+ static double utbln8n11(double s)
2393
+ {
2394
+ double result;
2395
+ double x;
2396
+ double tj;
2397
+ double tj1;
2398
+
2399
+ result = 0;
2400
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2401
+ tj = 1;
2402
+ tj1 = x;
2403
+ ucheb(x, -4.421882e+00, tj, tj1, result);
2404
+ ucheb(x, -4.812457e+00, tj, tj1, result);
2405
+ ucheb(x, -1.266153e+00, tj, tj1, result);
2406
+ ucheb(x, -2.849344e-01, tj, tj1, result);
2407
+ ucheb(x, -9.971527e-02, tj, tj1, result);
2408
+ ucheb(x, -4.258944e-02, tj, tj1, result);
2409
+ ucheb(x, -1.944820e-02, tj, tj1, result);
2410
+ ucheb(x, -9.894685e-03, tj, tj1, result);
2411
+ ucheb(x, -5.031836e-03, tj, tj1, result);
2412
+ ucheb(x, -2.514330e-03, tj, tj1, result);
2413
+ ucheb(x, -6.351660e-04, tj, tj1, result);
2414
+ ucheb(x, 6.206748e-04, tj, tj1, result);
2415
+ ucheb(x, 1.492600e-03, tj, tj1, result);
2416
+ ucheb(x, 2.005338e-03, tj, tj1, result);
2417
+ ucheb(x, 1.780099e-03, tj, tj1, result);
2418
+ ucheb(x, 1.673599e-03, tj, tj1, result);
2419
+ return result;
2420
+ }
2421
+
2422
+
2423
+ /*************************************************************************
2424
+ Tail(S, 8, 12)
2425
+ *************************************************************************/
2426
+ static double utbln8n12(double s)
2427
+ {
2428
+ double result;
2429
+ double x;
2430
+ double tj;
2431
+ double tj1;
2432
+
2433
+ result = 0;
2434
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2435
+ tj = 1;
2436
+ tj1 = x;
2437
+ ucheb(x, -4.398211e+00, tj, tj1, result);
2438
+ ucheb(x, -4.762214e+00, tj, tj1, result);
2439
+ ucheb(x, -1.226296e+00, tj, tj1, result);
2440
+ ucheb(x, -2.603837e-01, tj, tj1, result);
2441
+ ucheb(x, -8.643223e-02, tj, tj1, result);
2442
+ ucheb(x, -3.502438e-02, tj, tj1, result);
2443
+ ucheb(x, -1.544574e-02, tj, tj1, result);
2444
+ ucheb(x, -7.647734e-03, tj, tj1, result);
2445
+ ucheb(x, -4.442259e-03, tj, tj1, result);
2446
+ ucheb(x, -3.011484e-03, tj, tj1, result);
2447
+ ucheb(x, -2.384758e-03, tj, tj1, result);
2448
+ ucheb(x, -1.998259e-03, tj, tj1, result);
2449
+ ucheb(x, -1.659985e-03, tj, tj1, result);
2450
+ ucheb(x, -1.331046e-03, tj, tj1, result);
2451
+ ucheb(x, -8.638478e-04, tj, tj1, result);
2452
+ ucheb(x, -6.056785e-04, tj, tj1, result);
2453
+ return result;
2454
+ }
2455
+
2456
+
2457
+ /*************************************************************************
2458
+ Tail(S, 8, 13)
2459
+ *************************************************************************/
2460
+ static double utbln8n13(double s)
2461
+ {
2462
+ double result;
2463
+ double x;
2464
+ double tj;
2465
+ double tj1;
2466
+
2467
+ result = 0;
2468
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2469
+ tj = 1;
2470
+ tj1 = x;
2471
+ ucheb(x, -4.380670e+00, tj, tj1, result);
2472
+ ucheb(x, -4.724511e+00, tj, tj1, result);
2473
+ ucheb(x, -1.195851e+00, tj, tj1, result);
2474
+ ucheb(x, -2.420511e-01, tj, tj1, result);
2475
+ ucheb(x, -7.609928e-02, tj, tj1, result);
2476
+ ucheb(x, -2.893999e-02, tj, tj1, result);
2477
+ ucheb(x, -1.115919e-02, tj, tj1, result);
2478
+ ucheb(x, -4.291410e-03, tj, tj1, result);
2479
+ ucheb(x, -1.339664e-03, tj, tj1, result);
2480
+ ucheb(x, -1.801548e-04, tj, tj1, result);
2481
+ ucheb(x, 2.534710e-04, tj, tj1, result);
2482
+ ucheb(x, 2.793250e-04, tj, tj1, result);
2483
+ ucheb(x, 1.806718e-04, tj, tj1, result);
2484
+ ucheb(x, 1.384624e-04, tj, tj1, result);
2485
+ ucheb(x, 1.120582e-04, tj, tj1, result);
2486
+ ucheb(x, 2.936453e-04, tj, tj1, result);
2487
+ return result;
2488
+ }
2489
+
2490
+
2491
+ /*************************************************************************
2492
+ Tail(S, 8, 14)
2493
+ *************************************************************************/
2494
+ static double utbln8n14(double s)
2495
+ {
2496
+ double result;
2497
+ double x;
2498
+ double tj;
2499
+ double tj1;
2500
+
2501
+ result = 0;
2502
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2503
+ tj = 1;
2504
+ tj1 = x;
2505
+ ucheb(x, -4.368494e+00, tj, tj1, result);
2506
+ ucheb(x, -4.697171e+00, tj, tj1, result);
2507
+ ucheb(x, -1.174440e+00, tj, tj1, result);
2508
+ ucheb(x, -2.300621e-01, tj, tj1, result);
2509
+ ucheb(x, -7.087393e-02, tj, tj1, result);
2510
+ ucheb(x, -2.685826e-02, tj, tj1, result);
2511
+ ucheb(x, -1.085254e-02, tj, tj1, result);
2512
+ ucheb(x, -4.525658e-03, tj, tj1, result);
2513
+ ucheb(x, -1.966647e-03, tj, tj1, result);
2514
+ ucheb(x, -7.453388e-04, tj, tj1, result);
2515
+ ucheb(x, -3.826066e-04, tj, tj1, result);
2516
+ ucheb(x, -3.501958e-04, tj, tj1, result);
2517
+ ucheb(x, -5.336297e-04, tj, tj1, result);
2518
+ ucheb(x, -8.251972e-04, tj, tj1, result);
2519
+ ucheb(x, -8.118456e-04, tj, tj1, result);
2520
+ ucheb(x, -9.415959e-04, tj, tj1, result);
2521
+ return result;
2522
+ }
2523
+
2524
+
2525
+ /*************************************************************************
2526
+ Tail(S, 8, 15)
2527
+ *************************************************************************/
2528
+ static double utbln8n15(double s)
2529
+ {
2530
+ double result;
2531
+ double x;
2532
+ double tj;
2533
+ double tj1;
2534
+
2535
+ result = 0;
2536
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2537
+ tj = 1;
2538
+ tj1 = x;
2539
+ ucheb(x, -4.358397e+00, tj, tj1, result);
2540
+ ucheb(x, -4.674485e+00, tj, tj1, result);
2541
+ ucheb(x, -1.155941e+00, tj, tj1, result);
2542
+ ucheb(x, -2.195780e-01, tj, tj1, result);
2543
+ ucheb(x, -6.544830e-02, tj, tj1, result);
2544
+ ucheb(x, -2.426183e-02, tj, tj1, result);
2545
+ ucheb(x, -9.309902e-03, tj, tj1, result);
2546
+ ucheb(x, -3.650956e-03, tj, tj1, result);
2547
+ ucheb(x, -1.068874e-03, tj, tj1, result);
2548
+ ucheb(x, 1.538544e-04, tj, tj1, result);
2549
+ ucheb(x, 8.192525e-04, tj, tj1, result);
2550
+ ucheb(x, 1.073905e-03, tj, tj1, result);
2551
+ ucheb(x, 1.079673e-03, tj, tj1, result);
2552
+ ucheb(x, 9.423572e-04, tj, tj1, result);
2553
+ ucheb(x, 6.579647e-04, tj, tj1, result);
2554
+ ucheb(x, 4.765904e-04, tj, tj1, result);
2555
+ return result;
2556
+ }
2557
+
2558
+
2559
+ /*************************************************************************
2560
+ Tail(S, 8, 30)
2561
+ *************************************************************************/
2562
+ static double utbln8n30(double s)
2563
+ {
2564
+ double result;
2565
+ double x;
2566
+ double tj;
2567
+ double tj1;
2568
+
2569
+ result = 0;
2570
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2571
+ tj = 1;
2572
+ tj1 = x;
2573
+ ucheb(x, -4.318823e+00, tj, tj1, result);
2574
+ ucheb(x, -4.567159e+00, tj, tj1, result);
2575
+ ucheb(x, -1.064864e+00, tj, tj1, result);
2576
+ ucheb(x, -1.688413e-01, tj, tj1, result);
2577
+ ucheb(x, -4.153712e-02, tj, tj1, result);
2578
+ ucheb(x, -1.309389e-02, tj, tj1, result);
2579
+ ucheb(x, -4.226861e-03, tj, tj1, result);
2580
+ ucheb(x, -1.523815e-03, tj, tj1, result);
2581
+ ucheb(x, -5.780987e-04, tj, tj1, result);
2582
+ ucheb(x, -2.166866e-04, tj, tj1, result);
2583
+ ucheb(x, -6.922431e-05, tj, tj1, result);
2584
+ ucheb(x, -1.466397e-05, tj, tj1, result);
2585
+ ucheb(x, -5.690036e-06, tj, tj1, result);
2586
+ ucheb(x, -1.008185e-05, tj, tj1, result);
2587
+ ucheb(x, -9.271903e-06, tj, tj1, result);
2588
+ ucheb(x, -7.534751e-06, tj, tj1, result);
2589
+ return result;
2590
+ }
2591
+
2592
+
2593
+ /*************************************************************************
2594
+ Tail(S, 8, 100)
2595
+ *************************************************************************/
2596
+ static double utbln8n100(double s)
2597
+ {
2598
+ double result;
2599
+ double x;
2600
+ double tj;
2601
+ double tj1;
2602
+
2603
+ result = 0;
2604
+ x = ap::minreal(2*(s-0.000000e+00)/3.600000e+00-1, 1.0);
2605
+ tj = 1;
2606
+ tj1 = x;
2607
+ ucheb(x, -4.324531e+00, tj, tj1, result);
2608
+ ucheb(x, -4.547071e+00, tj, tj1, result);
2609
+ ucheb(x, -1.038129e+00, tj, tj1, result);
2610
+ ucheb(x, -1.541549e-01, tj, tj1, result);
2611
+ ucheb(x, -3.525605e-02, tj, tj1, result);
2612
+ ucheb(x, -1.044992e-02, tj, tj1, result);
2613
+ ucheb(x, -3.085713e-03, tj, tj1, result);
2614
+ ucheb(x, -1.017871e-03, tj, tj1, result);
2615
+ ucheb(x, -3.459226e-04, tj, tj1, result);
2616
+ ucheb(x, -1.092064e-04, tj, tj1, result);
2617
+ ucheb(x, -2.024349e-05, tj, tj1, result);
2618
+ ucheb(x, 7.366347e-06, tj, tj1, result);
2619
+ ucheb(x, 6.385637e-06, tj, tj1, result);
2620
+ ucheb(x, 8.321722e-08, tj, tj1, result);
2621
+ ucheb(x, -1.439286e-06, tj, tj1, result);
2622
+ ucheb(x, -3.058079e-07, tj, tj1, result);
2623
+ return result;
2624
+ }
2625
+
2626
+
2627
+ /*************************************************************************
2628
+ Tail(S, 9, 9)
2629
+ *************************************************************************/
2630
+ static double utbln9n9(double s)
2631
+ {
2632
+ double result;
2633
+ double x;
2634
+ double tj;
2635
+ double tj1;
2636
+
2637
+ result = 0;
2638
+ x = ap::minreal(2*(s-0.000000e+00)/3.576237e+00-1, 1.0);
2639
+ tj = 1;
2640
+ tj1 = x;
2641
+ ucheb(x, -4.372857e+00, tj, tj1, result);
2642
+ ucheb(x, -4.750859e+00, tj, tj1, result);
2643
+ ucheb(x, -1.248233e+00, tj, tj1, result);
2644
+ ucheb(x, -2.792868e-01, tj, tj1, result);
2645
+ ucheb(x, -9.559372e-02, tj, tj1, result);
2646
+ ucheb(x, -3.894941e-02, tj, tj1, result);
2647
+ ucheb(x, -1.643256e-02, tj, tj1, result);
2648
+ ucheb(x, -7.091370e-03, tj, tj1, result);
2649
+ ucheb(x, -2.285034e-03, tj, tj1, result);
2650
+ ucheb(x, 6.112997e-04, tj, tj1, result);
2651
+ ucheb(x, 2.806229e-03, tj, tj1, result);
2652
+ ucheb(x, 4.150741e-03, tj, tj1, result);
2653
+ ucheb(x, 4.509825e-03, tj, tj1, result);
2654
+ ucheb(x, 3.891051e-03, tj, tj1, result);
2655
+ ucheb(x, 2.485013e-03, tj, tj1, result);
2656
+ ucheb(x, 1.343653e-03, tj, tj1, result);
2657
+ return result;
2658
+ }
2659
+
2660
+
2661
+ /*************************************************************************
2662
+ Tail(S, 9, 10)
2663
+ *************************************************************************/
2664
+ static double utbln9n10(double s)
2665
+ {
2666
+ double result;
2667
+ double x;
2668
+ double tj;
2669
+ double tj1;
2670
+
2671
+ result = 0;
2672
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2673
+ tj = 1;
2674
+ tj1 = x;
2675
+ ucheb(x, -4.516726e+00, tj, tj1, result);
2676
+ ucheb(x, -4.939333e+00, tj, tj1, result);
2677
+ ucheb(x, -1.305046e+00, tj, tj1, result);
2678
+ ucheb(x, -2.935326e-01, tj, tj1, result);
2679
+ ucheb(x, -1.029141e-01, tj, tj1, result);
2680
+ ucheb(x, -4.420592e-02, tj, tj1, result);
2681
+ ucheb(x, -2.053140e-02, tj, tj1, result);
2682
+ ucheb(x, -1.065930e-02, tj, tj1, result);
2683
+ ucheb(x, -5.523581e-03, tj, tj1, result);
2684
+ ucheb(x, -2.544888e-03, tj, tj1, result);
2685
+ ucheb(x, -1.813741e-04, tj, tj1, result);
2686
+ ucheb(x, 1.510631e-03, tj, tj1, result);
2687
+ ucheb(x, 2.536057e-03, tj, tj1, result);
2688
+ ucheb(x, 2.833815e-03, tj, tj1, result);
2689
+ ucheb(x, 2.189692e-03, tj, tj1, result);
2690
+ ucheb(x, 1.615050e-03, tj, tj1, result);
2691
+ return result;
2692
+ }
2693
+
2694
+
2695
+ /*************************************************************************
2696
+ Tail(S, 9, 11)
2697
+ *************************************************************************/
2698
+ static double utbln9n11(double s)
2699
+ {
2700
+ double result;
2701
+ double x;
2702
+ double tj;
2703
+ double tj1;
2704
+
2705
+ result = 0;
2706
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2707
+ tj = 1;
2708
+ tj1 = x;
2709
+ ucheb(x, -4.481308e+00, tj, tj1, result);
2710
+ ucheb(x, -4.867483e+00, tj, tj1, result);
2711
+ ucheb(x, -1.249072e+00, tj, tj1, result);
2712
+ ucheb(x, -2.591790e-01, tj, tj1, result);
2713
+ ucheb(x, -8.400128e-02, tj, tj1, result);
2714
+ ucheb(x, -3.341992e-02, tj, tj1, result);
2715
+ ucheb(x, -1.463680e-02, tj, tj1, result);
2716
+ ucheb(x, -7.487211e-03, tj, tj1, result);
2717
+ ucheb(x, -4.671196e-03, tj, tj1, result);
2718
+ ucheb(x, -3.343472e-03, tj, tj1, result);
2719
+ ucheb(x, -2.544146e-03, tj, tj1, result);
2720
+ ucheb(x, -1.802335e-03, tj, tj1, result);
2721
+ ucheb(x, -1.117084e-03, tj, tj1, result);
2722
+ ucheb(x, -6.217443e-04, tj, tj1, result);
2723
+ ucheb(x, -2.858766e-04, tj, tj1, result);
2724
+ ucheb(x, -3.193687e-04, tj, tj1, result);
2725
+ return result;
2726
+ }
2727
+
2728
+
2729
+ /*************************************************************************
2730
+ Tail(S, 9, 12)
2731
+ *************************************************************************/
2732
+ static double utbln9n12(double s)
2733
+ {
2734
+ double result;
2735
+ double x;
2736
+ double tj;
2737
+ double tj1;
2738
+
2739
+ result = 0;
2740
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2741
+ tj = 1;
2742
+ tj1 = x;
2743
+ ucheb(x, -4.456776e+00, tj, tj1, result);
2744
+ ucheb(x, -4.817037e+00, tj, tj1, result);
2745
+ ucheb(x, -1.209788e+00, tj, tj1, result);
2746
+ ucheb(x, -2.362108e-01, tj, tj1, result);
2747
+ ucheb(x, -7.171356e-02, tj, tj1, result);
2748
+ ucheb(x, -2.661557e-02, tj, tj1, result);
2749
+ ucheb(x, -1.026141e-02, tj, tj1, result);
2750
+ ucheb(x, -4.361908e-03, tj, tj1, result);
2751
+ ucheb(x, -2.093885e-03, tj, tj1, result);
2752
+ ucheb(x, -1.298389e-03, tj, tj1, result);
2753
+ ucheb(x, -9.663603e-04, tj, tj1, result);
2754
+ ucheb(x, -7.768522e-04, tj, tj1, result);
2755
+ ucheb(x, -5.579015e-04, tj, tj1, result);
2756
+ ucheb(x, -2.868677e-04, tj, tj1, result);
2757
+ ucheb(x, -7.440652e-05, tj, tj1, result);
2758
+ ucheb(x, 1.523037e-04, tj, tj1, result);
2759
+ return result;
2760
+ }
2761
+
2762
+
2763
+ /*************************************************************************
2764
+ Tail(S, 9, 13)
2765
+ *************************************************************************/
2766
+ static double utbln9n13(double s)
2767
+ {
2768
+ double result;
2769
+ double x;
2770
+ double tj;
2771
+ double tj1;
2772
+
2773
+ result = 0;
2774
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2775
+ tj = 1;
2776
+ tj1 = x;
2777
+ ucheb(x, -4.438840e+00, tj, tj1, result);
2778
+ ucheb(x, -4.779308e+00, tj, tj1, result);
2779
+ ucheb(x, -1.180614e+00, tj, tj1, result);
2780
+ ucheb(x, -2.196489e-01, tj, tj1, result);
2781
+ ucheb(x, -6.346621e-02, tj, tj1, result);
2782
+ ucheb(x, -2.234857e-02, tj, tj1, result);
2783
+ ucheb(x, -7.796211e-03, tj, tj1, result);
2784
+ ucheb(x, -2.575715e-03, tj, tj1, result);
2785
+ ucheb(x, -5.525647e-04, tj, tj1, result);
2786
+ ucheb(x, 1.964651e-04, tj, tj1, result);
2787
+ ucheb(x, 4.275235e-04, tj, tj1, result);
2788
+ ucheb(x, 4.299124e-04, tj, tj1, result);
2789
+ ucheb(x, 3.397416e-04, tj, tj1, result);
2790
+ ucheb(x, 2.295781e-04, tj, tj1, result);
2791
+ ucheb(x, 1.237619e-04, tj, tj1, result);
2792
+ ucheb(x, 7.269692e-05, tj, tj1, result);
2793
+ return result;
2794
+ }
2795
+
2796
+
2797
+ /*************************************************************************
2798
+ Tail(S, 9, 14)
2799
+ *************************************************************************/
2800
+ static double utbln9n14(double s)
2801
+ {
2802
+ double result;
2803
+ double x;
2804
+ double tj;
2805
+ double tj1;
2806
+
2807
+ result = 0;
2808
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2809
+ tj = 1;
2810
+ tj1 = x;
2811
+ ucheb(x, -4.425981e+00, tj, tj1, result);
2812
+ ucheb(x, -4.751545e+00, tj, tj1, result);
2813
+ ucheb(x, -1.159543e+00, tj, tj1, result);
2814
+ ucheb(x, -2.086570e-01, tj, tj1, result);
2815
+ ucheb(x, -5.917446e-02, tj, tj1, result);
2816
+ ucheb(x, -2.120112e-02, tj, tj1, result);
2817
+ ucheb(x, -8.175519e-03, tj, tj1, result);
2818
+ ucheb(x, -3.515473e-03, tj, tj1, result);
2819
+ ucheb(x, -1.727772e-03, tj, tj1, result);
2820
+ ucheb(x, -9.070629e-04, tj, tj1, result);
2821
+ ucheb(x, -5.677569e-04, tj, tj1, result);
2822
+ ucheb(x, -3.876953e-04, tj, tj1, result);
2823
+ ucheb(x, -3.233502e-04, tj, tj1, result);
2824
+ ucheb(x, -3.508182e-04, tj, tj1, result);
2825
+ ucheb(x, -3.120389e-04, tj, tj1, result);
2826
+ ucheb(x, -3.847212e-04, tj, tj1, result);
2827
+ return result;
2828
+ }
2829
+
2830
+
2831
+ /*************************************************************************
2832
+ Tail(S, 9, 15)
2833
+ *************************************************************************/
2834
+ static double utbln9n15(double s)
2835
+ {
2836
+ double result;
2837
+ double x;
2838
+ double tj;
2839
+ double tj1;
2840
+
2841
+ result = 0;
2842
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2843
+ tj = 1;
2844
+ tj1 = x;
2845
+ ucheb(x, -4.414952e+00, tj, tj1, result);
2846
+ ucheb(x, -4.727612e+00, tj, tj1, result);
2847
+ ucheb(x, -1.140634e+00, tj, tj1, result);
2848
+ ucheb(x, -1.981231e-01, tj, tj1, result);
2849
+ ucheb(x, -5.382635e-02, tj, tj1, result);
2850
+ ucheb(x, -1.853575e-02, tj, tj1, result);
2851
+ ucheb(x, -6.571051e-03, tj, tj1, result);
2852
+ ucheb(x, -2.567625e-03, tj, tj1, result);
2853
+ ucheb(x, -9.214197e-04, tj, tj1, result);
2854
+ ucheb(x, -2.448700e-04, tj, tj1, result);
2855
+ ucheb(x, 1.712669e-04, tj, tj1, result);
2856
+ ucheb(x, 4.015050e-04, tj, tj1, result);
2857
+ ucheb(x, 5.438610e-04, tj, tj1, result);
2858
+ ucheb(x, 6.301363e-04, tj, tj1, result);
2859
+ ucheb(x, 5.309386e-04, tj, tj1, result);
2860
+ ucheb(x, 5.164772e-04, tj, tj1, result);
2861
+ return result;
2862
+ }
2863
+
2864
+
2865
+ /*************************************************************************
2866
+ Tail(S, 9, 30)
2867
+ *************************************************************************/
2868
+ static double utbln9n30(double s)
2869
+ {
2870
+ double result;
2871
+ double x;
2872
+ double tj;
2873
+ double tj1;
2874
+
2875
+ result = 0;
2876
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2877
+ tj = 1;
2878
+ tj1 = x;
2879
+ ucheb(x, -4.370720e+00, tj, tj1, result);
2880
+ ucheb(x, -4.615712e+00, tj, tj1, result);
2881
+ ucheb(x, -1.050023e+00, tj, tj1, result);
2882
+ ucheb(x, -1.504775e-01, tj, tj1, result);
2883
+ ucheb(x, -3.318265e-02, tj, tj1, result);
2884
+ ucheb(x, -9.646826e-03, tj, tj1, result);
2885
+ ucheb(x, -2.741492e-03, tj, tj1, result);
2886
+ ucheb(x, -8.735360e-04, tj, tj1, result);
2887
+ ucheb(x, -2.966911e-04, tj, tj1, result);
2888
+ ucheb(x, -1.100738e-04, tj, tj1, result);
2889
+ ucheb(x, -4.348991e-05, tj, tj1, result);
2890
+ ucheb(x, -1.527687e-05, tj, tj1, result);
2891
+ ucheb(x, -2.917286e-06, tj, tj1, result);
2892
+ ucheb(x, 3.397466e-07, tj, tj1, result);
2893
+ ucheb(x, -2.360175e-07, tj, tj1, result);
2894
+ ucheb(x, -9.892252e-07, tj, tj1, result);
2895
+ return result;
2896
+ }
2897
+
2898
+
2899
+ /*************************************************************************
2900
+ Tail(S, 9, 100)
2901
+ *************************************************************************/
2902
+ static double utbln9n100(double s)
2903
+ {
2904
+ double result;
2905
+ double x;
2906
+ double tj;
2907
+ double tj1;
2908
+
2909
+ result = 0;
2910
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2911
+ tj = 1;
2912
+ tj1 = x;
2913
+ ucheb(x, -4.372506e+00, tj, tj1, result);
2914
+ ucheb(x, -4.590966e+00, tj, tj1, result);
2915
+ ucheb(x, -1.021758e+00, tj, tj1, result);
2916
+ ucheb(x, -1.359849e-01, tj, tj1, result);
2917
+ ucheb(x, -2.755519e-02, tj, tj1, result);
2918
+ ucheb(x, -7.533166e-03, tj, tj1, result);
2919
+ ucheb(x, -1.936659e-03, tj, tj1, result);
2920
+ ucheb(x, -5.634913e-04, tj, tj1, result);
2921
+ ucheb(x, -1.730053e-04, tj, tj1, result);
2922
+ ucheb(x, -5.791845e-05, tj, tj1, result);
2923
+ ucheb(x, -2.030682e-05, tj, tj1, result);
2924
+ ucheb(x, -5.228663e-06, tj, tj1, result);
2925
+ ucheb(x, 8.631175e-07, tj, tj1, result);
2926
+ ucheb(x, 1.636749e-06, tj, tj1, result);
2927
+ ucheb(x, 4.404599e-07, tj, tj1, result);
2928
+ ucheb(x, -2.789872e-07, tj, tj1, result);
2929
+ return result;
2930
+ }
2931
+
2932
+
2933
+ /*************************************************************************
2934
+ Tail(S, 10, 10)
2935
+ *************************************************************************/
2936
+ static double utbln10n10(double s)
2937
+ {
2938
+ double result;
2939
+ double x;
2940
+ double tj;
2941
+ double tj1;
2942
+
2943
+ result = 0;
2944
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2945
+ tj = 1;
2946
+ tj1 = x;
2947
+ ucheb(x, -4.468831e+00, tj, tj1, result);
2948
+ ucheb(x, -4.844398e+00, tj, tj1, result);
2949
+ ucheb(x, -1.231728e+00, tj, tj1, result);
2950
+ ucheb(x, -2.486073e-01, tj, tj1, result);
2951
+ ucheb(x, -7.781321e-02, tj, tj1, result);
2952
+ ucheb(x, -2.971425e-02, tj, tj1, result);
2953
+ ucheb(x, -1.215371e-02, tj, tj1, result);
2954
+ ucheb(x, -5.828451e-03, tj, tj1, result);
2955
+ ucheb(x, -3.419872e-03, tj, tj1, result);
2956
+ ucheb(x, -2.430165e-03, tj, tj1, result);
2957
+ ucheb(x, -1.740363e-03, tj, tj1, result);
2958
+ ucheb(x, -1.049211e-03, tj, tj1, result);
2959
+ ucheb(x, -3.269371e-04, tj, tj1, result);
2960
+ ucheb(x, 2.211393e-04, tj, tj1, result);
2961
+ ucheb(x, 4.232314e-04, tj, tj1, result);
2962
+ ucheb(x, 3.016081e-04, tj, tj1, result);
2963
+ return result;
2964
+ }
2965
+
2966
+
2967
+ /*************************************************************************
2968
+ Tail(S, 10, 11)
2969
+ *************************************************************************/
2970
+ static double utbln10n11(double s)
2971
+ {
2972
+ double result;
2973
+ double x;
2974
+ double tj;
2975
+ double tj1;
2976
+
2977
+ result = 0;
2978
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
2979
+ tj = 1;
2980
+ tj1 = x;
2981
+ ucheb(x, -4.437998e+00, tj, tj1, result);
2982
+ ucheb(x, -4.782296e+00, tj, tj1, result);
2983
+ ucheb(x, -1.184732e+00, tj, tj1, result);
2984
+ ucheb(x, -2.219585e-01, tj, tj1, result);
2985
+ ucheb(x, -6.457012e-02, tj, tj1, result);
2986
+ ucheb(x, -2.296008e-02, tj, tj1, result);
2987
+ ucheb(x, -8.481501e-03, tj, tj1, result);
2988
+ ucheb(x, -3.527940e-03, tj, tj1, result);
2989
+ ucheb(x, -1.953426e-03, tj, tj1, result);
2990
+ ucheb(x, -1.563840e-03, tj, tj1, result);
2991
+ ucheb(x, -1.574403e-03, tj, tj1, result);
2992
+ ucheb(x, -1.535775e-03, tj, tj1, result);
2993
+ ucheb(x, -1.338037e-03, tj, tj1, result);
2994
+ ucheb(x, -1.002654e-03, tj, tj1, result);
2995
+ ucheb(x, -5.852676e-04, tj, tj1, result);
2996
+ ucheb(x, -3.318132e-04, tj, tj1, result);
2997
+ return result;
2998
+ }
2999
+
3000
+
3001
+ /*************************************************************************
3002
+ Tail(S, 10, 12)
3003
+ *************************************************************************/
3004
+ static double utbln10n12(double s)
3005
+ {
3006
+ double result;
3007
+ double x;
3008
+ double tj;
3009
+ double tj1;
3010
+
3011
+ result = 0;
3012
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3013
+ tj = 1;
3014
+ tj1 = x;
3015
+ ucheb(x, -4.416082e+00, tj, tj1, result);
3016
+ ucheb(x, -4.737458e+00, tj, tj1, result);
3017
+ ucheb(x, -1.150952e+00, tj, tj1, result);
3018
+ ucheb(x, -2.036884e-01, tj, tj1, result);
3019
+ ucheb(x, -5.609030e-02, tj, tj1, result);
3020
+ ucheb(x, -1.908684e-02, tj, tj1, result);
3021
+ ucheb(x, -6.439666e-03, tj, tj1, result);
3022
+ ucheb(x, -2.162647e-03, tj, tj1, result);
3023
+ ucheb(x, -6.451601e-04, tj, tj1, result);
3024
+ ucheb(x, -2.148757e-04, tj, tj1, result);
3025
+ ucheb(x, -1.803981e-04, tj, tj1, result);
3026
+ ucheb(x, -2.731621e-04, tj, tj1, result);
3027
+ ucheb(x, -3.346903e-04, tj, tj1, result);
3028
+ ucheb(x, -3.013151e-04, tj, tj1, result);
3029
+ ucheb(x, -1.956148e-04, tj, tj1, result);
3030
+ ucheb(x, -2.438381e-05, tj, tj1, result);
3031
+ return result;
3032
+ }
3033
+
3034
+
3035
+ /*************************************************************************
3036
+ Tail(S, 10, 13)
3037
+ *************************************************************************/
3038
+ static double utbln10n13(double s)
3039
+ {
3040
+ double result;
3041
+ double x;
3042
+ double tj;
3043
+ double tj1;
3044
+
3045
+ result = 0;
3046
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3047
+ tj = 1;
3048
+ tj1 = x;
3049
+ ucheb(x, -4.399480e+00, tj, tj1, result);
3050
+ ucheb(x, -4.702863e+00, tj, tj1, result);
3051
+ ucheb(x, -1.124829e+00, tj, tj1, result);
3052
+ ucheb(x, -1.897428e-01, tj, tj1, result);
3053
+ ucheb(x, -4.979802e-02, tj, tj1, result);
3054
+ ucheb(x, -1.634368e-02, tj, tj1, result);
3055
+ ucheb(x, -5.180461e-03, tj, tj1, result);
3056
+ ucheb(x, -1.484926e-03, tj, tj1, result);
3057
+ ucheb(x, -7.864376e-05, tj, tj1, result);
3058
+ ucheb(x, 4.186576e-04, tj, tj1, result);
3059
+ ucheb(x, 5.886925e-04, tj, tj1, result);
3060
+ ucheb(x, 5.836828e-04, tj, tj1, result);
3061
+ ucheb(x, 5.074756e-04, tj, tj1, result);
3062
+ ucheb(x, 4.209547e-04, tj, tj1, result);
3063
+ ucheb(x, 2.883266e-04, tj, tj1, result);
3064
+ ucheb(x, 2.380143e-04, tj, tj1, result);
3065
+ return result;
3066
+ }
3067
+
3068
+
3069
+ /*************************************************************************
3070
+ Tail(S, 10, 14)
3071
+ *************************************************************************/
3072
+ static double utbln10n14(double s)
3073
+ {
3074
+ double result;
3075
+ double x;
3076
+ double tj;
3077
+ double tj1;
3078
+
3079
+ result = 0;
3080
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3081
+ tj = 1;
3082
+ tj1 = x;
3083
+ ucheb(x, -4.386924e+00, tj, tj1, result);
3084
+ ucheb(x, -4.676124e+00, tj, tj1, result);
3085
+ ucheb(x, -1.104740e+00, tj, tj1, result);
3086
+ ucheb(x, -1.793826e-01, tj, tj1, result);
3087
+ ucheb(x, -4.558886e-02, tj, tj1, result);
3088
+ ucheb(x, -1.492462e-02, tj, tj1, result);
3089
+ ucheb(x, -5.052903e-03, tj, tj1, result);
3090
+ ucheb(x, -1.917782e-03, tj, tj1, result);
3091
+ ucheb(x, -7.878696e-04, tj, tj1, result);
3092
+ ucheb(x, -3.576046e-04, tj, tj1, result);
3093
+ ucheb(x, -1.764551e-04, tj, tj1, result);
3094
+ ucheb(x, -9.288778e-05, tj, tj1, result);
3095
+ ucheb(x, -4.757658e-05, tj, tj1, result);
3096
+ ucheb(x, -2.299101e-05, tj, tj1, result);
3097
+ ucheb(x, -9.265197e-06, tj, tj1, result);
3098
+ ucheb(x, -2.384503e-07, tj, tj1, result);
3099
+ return result;
3100
+ }
3101
+
3102
+
3103
+ /*************************************************************************
3104
+ Tail(S, 10, 15)
3105
+ *************************************************************************/
3106
+ static double utbln10n15(double s)
3107
+ {
3108
+ double result;
3109
+ double x;
3110
+ double tj;
3111
+ double tj1;
3112
+
3113
+ result = 0;
3114
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3115
+ tj = 1;
3116
+ tj1 = x;
3117
+ ucheb(x, -4.376846e+00, tj, tj1, result);
3118
+ ucheb(x, -4.654247e+00, tj, tj1, result);
3119
+ ucheb(x, -1.088083e+00, tj, tj1, result);
3120
+ ucheb(x, -1.705945e-01, tj, tj1, result);
3121
+ ucheb(x, -4.169677e-02, tj, tj1, result);
3122
+ ucheb(x, -1.317213e-02, tj, tj1, result);
3123
+ ucheb(x, -4.264836e-03, tj, tj1, result);
3124
+ ucheb(x, -1.548024e-03, tj, tj1, result);
3125
+ ucheb(x, -6.633910e-04, tj, tj1, result);
3126
+ ucheb(x, -3.505621e-04, tj, tj1, result);
3127
+ ucheb(x, -2.658588e-04, tj, tj1, result);
3128
+ ucheb(x, -2.320254e-04, tj, tj1, result);
3129
+ ucheb(x, -2.175277e-04, tj, tj1, result);
3130
+ ucheb(x, -2.122317e-04, tj, tj1, result);
3131
+ ucheb(x, -1.675688e-04, tj, tj1, result);
3132
+ ucheb(x, -1.661363e-04, tj, tj1, result);
3133
+ return result;
3134
+ }
3135
+
3136
+
3137
+ /*************************************************************************
3138
+ Tail(S, 10, 30)
3139
+ *************************************************************************/
3140
+ static double utbln10n30(double s)
3141
+ {
3142
+ double result;
3143
+ double x;
3144
+ double tj;
3145
+ double tj1;
3146
+
3147
+ result = 0;
3148
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3149
+ tj = 1;
3150
+ tj1 = x;
3151
+ ucheb(x, -4.333977e+00, tj, tj1, result);
3152
+ ucheb(x, -4.548099e+00, tj, tj1, result);
3153
+ ucheb(x, -1.004444e+00, tj, tj1, result);
3154
+ ucheb(x, -1.291014e-01, tj, tj1, result);
3155
+ ucheb(x, -2.523674e-02, tj, tj1, result);
3156
+ ucheb(x, -6.828211e-03, tj, tj1, result);
3157
+ ucheb(x, -1.716917e-03, tj, tj1, result);
3158
+ ucheb(x, -4.894256e-04, tj, tj1, result);
3159
+ ucheb(x, -1.433371e-04, tj, tj1, result);
3160
+ ucheb(x, -4.522675e-05, tj, tj1, result);
3161
+ ucheb(x, -1.764192e-05, tj, tj1, result);
3162
+ ucheb(x, -9.140235e-06, tj, tj1, result);
3163
+ ucheb(x, -5.629230e-06, tj, tj1, result);
3164
+ ucheb(x, -3.541895e-06, tj, tj1, result);
3165
+ ucheb(x, -1.944946e-06, tj, tj1, result);
3166
+ ucheb(x, -1.726360e-06, tj, tj1, result);
3167
+ return result;
3168
+ }
3169
+
3170
+
3171
+ /*************************************************************************
3172
+ Tail(S, 10, 100)
3173
+ *************************************************************************/
3174
+ static double utbln10n100(double s)
3175
+ {
3176
+ double result;
3177
+ double x;
3178
+ double tj;
3179
+ double tj1;
3180
+
3181
+ result = 0;
3182
+ x = ap::minreal(2*(s-0.000000e+00)/3.650000e+00-1, 1.0);
3183
+ tj = 1;
3184
+ tj1 = x;
3185
+ ucheb(x, -4.334008e+00, tj, tj1, result);
3186
+ ucheb(x, -4.522316e+00, tj, tj1, result);
3187
+ ucheb(x, -9.769627e-01, tj, tj1, result);
3188
+ ucheb(x, -1.158110e-01, tj, tj1, result);
3189
+ ucheb(x, -2.053650e-02, tj, tj1, result);
3190
+ ucheb(x, -5.242235e-03, tj, tj1, result);
3191
+ ucheb(x, -1.173571e-03, tj, tj1, result);
3192
+ ucheb(x, -3.033661e-04, tj, tj1, result);
3193
+ ucheb(x, -7.824732e-05, tj, tj1, result);
3194
+ ucheb(x, -2.084420e-05, tj, tj1, result);
3195
+ ucheb(x, -6.610036e-06, tj, tj1, result);
3196
+ ucheb(x, -2.728155e-06, tj, tj1, result);
3197
+ ucheb(x, -1.217130e-06, tj, tj1, result);
3198
+ ucheb(x, -2.340966e-07, tj, tj1, result);
3199
+ ucheb(x, 2.001235e-07, tj, tj1, result);
3200
+ ucheb(x, 1.694052e-07, tj, tj1, result);
3201
+ return result;
3202
+ }
3203
+
3204
+
3205
+ /*************************************************************************
3206
+ Tail(S, 11, 11)
3207
+ *************************************************************************/
3208
+ static double utbln11n11(double s)
3209
+ {
3210
+ double result;
3211
+ double x;
3212
+ double tj;
3213
+ double tj1;
3214
+
3215
+ result = 0;
3216
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3217
+ tj = 1;
3218
+ tj1 = x;
3219
+ ucheb(x, -4.519760e+00, tj, tj1, result);
3220
+ ucheb(x, -4.880694e+00, tj, tj1, result);
3221
+ ucheb(x, -1.200698e+00, tj, tj1, result);
3222
+ ucheb(x, -2.174092e-01, tj, tj1, result);
3223
+ ucheb(x, -6.072304e-02, tj, tj1, result);
3224
+ ucheb(x, -2.054773e-02, tj, tj1, result);
3225
+ ucheb(x, -6.506613e-03, tj, tj1, result);
3226
+ ucheb(x, -1.813942e-03, tj, tj1, result);
3227
+ ucheb(x, -1.223644e-04, tj, tj1, result);
3228
+ ucheb(x, 2.417416e-04, tj, tj1, result);
3229
+ ucheb(x, 2.499166e-04, tj, tj1, result);
3230
+ ucheb(x, 1.194332e-04, tj, tj1, result);
3231
+ ucheb(x, 7.369096e-05, tj, tj1, result);
3232
+ ucheb(x, 1.968590e-04, tj, tj1, result);
3233
+ ucheb(x, 2.630532e-04, tj, tj1, result);
3234
+ ucheb(x, 5.061000e-04, tj, tj1, result);
3235
+ return result;
3236
+ }
3237
+
3238
+
3239
+ /*************************************************************************
3240
+ Tail(S, 11, 12)
3241
+ *************************************************************************/
3242
+ static double utbln11n12(double s)
3243
+ {
3244
+ double result;
3245
+ double x;
3246
+ double tj;
3247
+ double tj1;
3248
+
3249
+ result = 0;
3250
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3251
+ tj = 1;
3252
+ tj1 = x;
3253
+ ucheb(x, -4.495790e+00, tj, tj1, result);
3254
+ ucheb(x, -4.832622e+00, tj, tj1, result);
3255
+ ucheb(x, -1.165420e+00, tj, tj1, result);
3256
+ ucheb(x, -1.987306e-01, tj, tj1, result);
3257
+ ucheb(x, -5.265621e-02, tj, tj1, result);
3258
+ ucheb(x, -1.723537e-02, tj, tj1, result);
3259
+ ucheb(x, -5.347406e-03, tj, tj1, result);
3260
+ ucheb(x, -1.353464e-03, tj, tj1, result);
3261
+ ucheb(x, 6.613369e-05, tj, tj1, result);
3262
+ ucheb(x, 5.102522e-04, tj, tj1, result);
3263
+ ucheb(x, 5.237709e-04, tj, tj1, result);
3264
+ ucheb(x, 3.665652e-04, tj, tj1, result);
3265
+ ucheb(x, 1.626903e-04, tj, tj1, result);
3266
+ ucheb(x, -1.167518e-05, tj, tj1, result);
3267
+ ucheb(x, -8.564455e-05, tj, tj1, result);
3268
+ ucheb(x, -1.047320e-04, tj, tj1, result);
3269
+ return result;
3270
+ }
3271
+
3272
+
3273
+ /*************************************************************************
3274
+ Tail(S, 11, 13)
3275
+ *************************************************************************/
3276
+ static double utbln11n13(double s)
3277
+ {
3278
+ double result;
3279
+ double x;
3280
+ double tj;
3281
+ double tj1;
3282
+
3283
+ result = 0;
3284
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3285
+ tj = 1;
3286
+ tj1 = x;
3287
+ ucheb(x, -4.477880e+00, tj, tj1, result);
3288
+ ucheb(x, -4.796242e+00, tj, tj1, result);
3289
+ ucheb(x, -1.138769e+00, tj, tj1, result);
3290
+ ucheb(x, -1.851739e-01, tj, tj1, result);
3291
+ ucheb(x, -4.722104e-02, tj, tj1, result);
3292
+ ucheb(x, -1.548304e-02, tj, tj1, result);
3293
+ ucheb(x, -5.176683e-03, tj, tj1, result);
3294
+ ucheb(x, -1.817895e-03, tj, tj1, result);
3295
+ ucheb(x, -5.842451e-04, tj, tj1, result);
3296
+ ucheb(x, -8.935870e-05, tj, tj1, result);
3297
+ ucheb(x, 8.421777e-05, tj, tj1, result);
3298
+ ucheb(x, 1.238831e-04, tj, tj1, result);
3299
+ ucheb(x, 8.867026e-05, tj, tj1, result);
3300
+ ucheb(x, 1.458255e-05, tj, tj1, result);
3301
+ ucheb(x, -3.306259e-05, tj, tj1, result);
3302
+ ucheb(x, -8.961487e-05, tj, tj1, result);
3303
+ return result;
3304
+ }
3305
+
3306
+
3307
+ /*************************************************************************
3308
+ Tail(S, 11, 14)
3309
+ *************************************************************************/
3310
+ static double utbln11n14(double s)
3311
+ {
3312
+ double result;
3313
+ double x;
3314
+ double tj;
3315
+ double tj1;
3316
+
3317
+ result = 0;
3318
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3319
+ tj = 1;
3320
+ tj1 = x;
3321
+ ucheb(x, -4.463683e+00, tj, tj1, result);
3322
+ ucheb(x, -4.766969e+00, tj, tj1, result);
3323
+ ucheb(x, -1.117082e+00, tj, tj1, result);
3324
+ ucheb(x, -1.739574e-01, tj, tj1, result);
3325
+ ucheb(x, -4.238865e-02, tj, tj1, result);
3326
+ ucheb(x, -1.350306e-02, tj, tj1, result);
3327
+ ucheb(x, -4.425871e-03, tj, tj1, result);
3328
+ ucheb(x, -1.640172e-03, tj, tj1, result);
3329
+ ucheb(x, -6.660633e-04, tj, tj1, result);
3330
+ ucheb(x, -2.879883e-04, tj, tj1, result);
3331
+ ucheb(x, -1.349658e-04, tj, tj1, result);
3332
+ ucheb(x, -6.271795e-05, tj, tj1, result);
3333
+ ucheb(x, -3.304544e-05, tj, tj1, result);
3334
+ ucheb(x, -3.024201e-05, tj, tj1, result);
3335
+ ucheb(x, -2.816867e-05, tj, tj1, result);
3336
+ ucheb(x, -4.596787e-05, tj, tj1, result);
3337
+ return result;
3338
+ }
3339
+
3340
+
3341
+ /*************************************************************************
3342
+ Tail(S, 11, 15)
3343
+ *************************************************************************/
3344
+ static double utbln11n15(double s)
3345
+ {
3346
+ double result;
3347
+ double x;
3348
+ double tj;
3349
+ double tj1;
3350
+
3351
+ result = 0;
3352
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3353
+ tj = 1;
3354
+ tj1 = x;
3355
+ ucheb(x, -4.452526e+00, tj, tj1, result);
3356
+ ucheb(x, -4.743570e+00, tj, tj1, result);
3357
+ ucheb(x, -1.099705e+00, tj, tj1, result);
3358
+ ucheb(x, -1.650612e-01, tj, tj1, result);
3359
+ ucheb(x, -3.858285e-02, tj, tj1, result);
3360
+ ucheb(x, -1.187036e-02, tj, tj1, result);
3361
+ ucheb(x, -3.689241e-03, tj, tj1, result);
3362
+ ucheb(x, -1.294360e-03, tj, tj1, result);
3363
+ ucheb(x, -5.072623e-04, tj, tj1, result);
3364
+ ucheb(x, -2.278008e-04, tj, tj1, result);
3365
+ ucheb(x, -1.322382e-04, tj, tj1, result);
3366
+ ucheb(x, -9.131558e-05, tj, tj1, result);
3367
+ ucheb(x, -7.305669e-05, tj, tj1, result);
3368
+ ucheb(x, -6.825627e-05, tj, tj1, result);
3369
+ ucheb(x, -5.332689e-05, tj, tj1, result);
3370
+ ucheb(x, -6.120973e-05, tj, tj1, result);
3371
+ return result;
3372
+ }
3373
+
3374
+
3375
+ /*************************************************************************
3376
+ Tail(S, 11, 30)
3377
+ *************************************************************************/
3378
+ static double utbln11n30(double s)
3379
+ {
3380
+ double result;
3381
+ double x;
3382
+ double tj;
3383
+ double tj1;
3384
+
3385
+ result = 0;
3386
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3387
+ tj = 1;
3388
+ tj1 = x;
3389
+ ucheb(x, -4.402621e+00, tj, tj1, result);
3390
+ ucheb(x, -4.627440e+00, tj, tj1, result);
3391
+ ucheb(x, -1.011333e+00, tj, tj1, result);
3392
+ ucheb(x, -1.224126e-01, tj, tj1, result);
3393
+ ucheb(x, -2.232856e-02, tj, tj1, result);
3394
+ ucheb(x, -5.859347e-03, tj, tj1, result);
3395
+ ucheb(x, -1.377381e-03, tj, tj1, result);
3396
+ ucheb(x, -3.756709e-04, tj, tj1, result);
3397
+ ucheb(x, -1.033230e-04, tj, tj1, result);
3398
+ ucheb(x, -2.875472e-05, tj, tj1, result);
3399
+ ucheb(x, -8.608399e-06, tj, tj1, result);
3400
+ ucheb(x, -3.102943e-06, tj, tj1, result);
3401
+ ucheb(x, -1.740693e-06, tj, tj1, result);
3402
+ ucheb(x, -1.343139e-06, tj, tj1, result);
3403
+ ucheb(x, -9.196878e-07, tj, tj1, result);
3404
+ ucheb(x, -6.658062e-07, tj, tj1, result);
3405
+ return result;
3406
+ }
3407
+
3408
+
3409
+ /*************************************************************************
3410
+ Tail(S, 11, 100)
3411
+ *************************************************************************/
3412
+ static double utbln11n100(double s)
3413
+ {
3414
+ double result;
3415
+ double x;
3416
+ double tj;
3417
+ double tj1;
3418
+
3419
+ result = 0;
3420
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3421
+ tj = 1;
3422
+ tj1 = x;
3423
+ ucheb(x, -4.398795e+00, tj, tj1, result);
3424
+ ucheb(x, -4.596486e+00, tj, tj1, result);
3425
+ ucheb(x, -9.814761e-01, tj, tj1, result);
3426
+ ucheb(x, -1.085187e-01, tj, tj1, result);
3427
+ ucheb(x, -1.766529e-02, tj, tj1, result);
3428
+ ucheb(x, -4.379425e-03, tj, tj1, result);
3429
+ ucheb(x, -8.986351e-04, tj, tj1, result);
3430
+ ucheb(x, -2.214705e-04, tj, tj1, result);
3431
+ ucheb(x, -5.360075e-05, tj, tj1, result);
3432
+ ucheb(x, -1.260869e-05, tj, tj1, result);
3433
+ ucheb(x, -3.033307e-06, tj, tj1, result);
3434
+ ucheb(x, -7.727087e-07, tj, tj1, result);
3435
+ ucheb(x, -3.393883e-07, tj, tj1, result);
3436
+ ucheb(x, -2.242989e-07, tj, tj1, result);
3437
+ ucheb(x, -1.111928e-07, tj, tj1, result);
3438
+ ucheb(x, 3.898823e-09, tj, tj1, result);
3439
+ return result;
3440
+ }
3441
+
3442
+
3443
+ /*************************************************************************
3444
+ Tail(S, 12, 12)
3445
+ *************************************************************************/
3446
+ static double utbln12n12(double s)
3447
+ {
3448
+ double result;
3449
+ double x;
3450
+ double tj;
3451
+ double tj1;
3452
+
3453
+ result = 0;
3454
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3455
+ tj = 1;
3456
+ tj1 = x;
3457
+ ucheb(x, -4.472616e+00, tj, tj1, result);
3458
+ ucheb(x, -4.786627e+00, tj, tj1, result);
3459
+ ucheb(x, -1.132099e+00, tj, tj1, result);
3460
+ ucheb(x, -1.817523e-01, tj, tj1, result);
3461
+ ucheb(x, -4.570179e-02, tj, tj1, result);
3462
+ ucheb(x, -1.479511e-02, tj, tj1, result);
3463
+ ucheb(x, -4.799492e-03, tj, tj1, result);
3464
+ ucheb(x, -1.565350e-03, tj, tj1, result);
3465
+ ucheb(x, -3.530139e-04, tj, tj1, result);
3466
+ ucheb(x, 1.380132e-04, tj, tj1, result);
3467
+ ucheb(x, 3.242761e-04, tj, tj1, result);
3468
+ ucheb(x, 3.576269e-04, tj, tj1, result);
3469
+ ucheb(x, 3.018771e-04, tj, tj1, result);
3470
+ ucheb(x, 1.933911e-04, tj, tj1, result);
3471
+ ucheb(x, 9.002799e-05, tj, tj1, result);
3472
+ ucheb(x, -2.022048e-06, tj, tj1, result);
3473
+ return result;
3474
+ }
3475
+
3476
+
3477
+ /*************************************************************************
3478
+ Tail(S, 12, 13)
3479
+ *************************************************************************/
3480
+ static double utbln12n13(double s)
3481
+ {
3482
+ double result;
3483
+ double x;
3484
+ double tj;
3485
+ double tj1;
3486
+
3487
+ result = 0;
3488
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3489
+ tj = 1;
3490
+ tj1 = x;
3491
+ ucheb(x, -4.454800e+00, tj, tj1, result);
3492
+ ucheb(x, -4.750794e+00, tj, tj1, result);
3493
+ ucheb(x, -1.105988e+00, tj, tj1, result);
3494
+ ucheb(x, -1.684754e-01, tj, tj1, result);
3495
+ ucheb(x, -4.011826e-02, tj, tj1, result);
3496
+ ucheb(x, -1.262579e-02, tj, tj1, result);
3497
+ ucheb(x, -4.044492e-03, tj, tj1, result);
3498
+ ucheb(x, -1.478741e-03, tj, tj1, result);
3499
+ ucheb(x, -5.322165e-04, tj, tj1, result);
3500
+ ucheb(x, -1.621104e-04, tj, tj1, result);
3501
+ ucheb(x, 4.068753e-05, tj, tj1, result);
3502
+ ucheb(x, 1.468396e-04, tj, tj1, result);
3503
+ ucheb(x, 2.056235e-04, tj, tj1, result);
3504
+ ucheb(x, 2.327375e-04, tj, tj1, result);
3505
+ ucheb(x, 1.914877e-04, tj, tj1, result);
3506
+ ucheb(x, 1.784191e-04, tj, tj1, result);
3507
+ return result;
3508
+ }
3509
+
3510
+
3511
+ /*************************************************************************
3512
+ Tail(S, 12, 14)
3513
+ *************************************************************************/
3514
+ static double utbln12n14(double s)
3515
+ {
3516
+ double result;
3517
+ double x;
3518
+ double tj;
3519
+ double tj1;
3520
+
3521
+ result = 0;
3522
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3523
+ tj = 1;
3524
+ tj1 = x;
3525
+ ucheb(x, -4.440910e+00, tj, tj1, result);
3526
+ ucheb(x, -4.722404e+00, tj, tj1, result);
3527
+ ucheb(x, -1.085254e+00, tj, tj1, result);
3528
+ ucheb(x, -1.579439e-01, tj, tj1, result);
3529
+ ucheb(x, -3.563738e-02, tj, tj1, result);
3530
+ ucheb(x, -1.066730e-02, tj, tj1, result);
3531
+ ucheb(x, -3.129346e-03, tj, tj1, result);
3532
+ ucheb(x, -1.014531e-03, tj, tj1, result);
3533
+ ucheb(x, -3.129679e-04, tj, tj1, result);
3534
+ ucheb(x, -8.000909e-05, tj, tj1, result);
3535
+ ucheb(x, 1.996174e-05, tj, tj1, result);
3536
+ ucheb(x, 6.377924e-05, tj, tj1, result);
3537
+ ucheb(x, 8.936304e-05, tj, tj1, result);
3538
+ ucheb(x, 1.051098e-04, tj, tj1, result);
3539
+ ucheb(x, 9.025820e-05, tj, tj1, result);
3540
+ ucheb(x, 8.730585e-05, tj, tj1, result);
3541
+ return result;
3542
+ }
3543
+
3544
+
3545
+ /*************************************************************************
3546
+ Tail(S, 12, 15)
3547
+ *************************************************************************/
3548
+ static double utbln12n15(double s)
3549
+ {
3550
+ double result;
3551
+ double x;
3552
+ double tj;
3553
+ double tj1;
3554
+
3555
+ result = 0;
3556
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3557
+ tj = 1;
3558
+ tj1 = x;
3559
+ ucheb(x, -4.430123e+00, tj, tj1, result);
3560
+ ucheb(x, -4.700008e+00, tj, tj1, result);
3561
+ ucheb(x, -1.068971e+00, tj, tj1, result);
3562
+ ucheb(x, -1.499725e-01, tj, tj1, result);
3563
+ ucheb(x, -3.250897e-02, tj, tj1, result);
3564
+ ucheb(x, -9.473145e-03, tj, tj1, result);
3565
+ ucheb(x, -2.680008e-03, tj, tj1, result);
3566
+ ucheb(x, -8.483350e-04, tj, tj1, result);
3567
+ ucheb(x, -2.766992e-04, tj, tj1, result);
3568
+ ucheb(x, -9.891081e-05, tj, tj1, result);
3569
+ ucheb(x, -4.015140e-05, tj, tj1, result);
3570
+ ucheb(x, -1.977756e-05, tj, tj1, result);
3571
+ ucheb(x, -8.707414e-06, tj, tj1, result);
3572
+ ucheb(x, 1.114786e-06, tj, tj1, result);
3573
+ ucheb(x, 6.238865e-06, tj, tj1, result);
3574
+ ucheb(x, 1.381445e-05, tj, tj1, result);
3575
+ return result;
3576
+ }
3577
+
3578
+
3579
+ /*************************************************************************
3580
+ Tail(S, 12, 30)
3581
+ *************************************************************************/
3582
+ static double utbln12n30(double s)
3583
+ {
3584
+ double result;
3585
+ double x;
3586
+ double tj;
3587
+ double tj1;
3588
+
3589
+ result = 0;
3590
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3591
+ tj = 1;
3592
+ tj1 = x;
3593
+ ucheb(x, -4.380023e+00, tj, tj1, result);
3594
+ ucheb(x, -4.585782e+00, tj, tj1, result);
3595
+ ucheb(x, -9.838583e-01, tj, tj1, result);
3596
+ ucheb(x, -1.103394e-01, tj, tj1, result);
3597
+ ucheb(x, -1.834015e-02, tj, tj1, result);
3598
+ ucheb(x, -4.635212e-03, tj, tj1, result);
3599
+ ucheb(x, -9.948212e-04, tj, tj1, result);
3600
+ ucheb(x, -2.574169e-04, tj, tj1, result);
3601
+ ucheb(x, -6.747980e-05, tj, tj1, result);
3602
+ ucheb(x, -1.833672e-05, tj, tj1, result);
3603
+ ucheb(x, -5.722433e-06, tj, tj1, result);
3604
+ ucheb(x, -2.181038e-06, tj, tj1, result);
3605
+ ucheb(x, -1.206473e-06, tj, tj1, result);
3606
+ ucheb(x, -9.716003e-07, tj, tj1, result);
3607
+ ucheb(x, -7.476434e-07, tj, tj1, result);
3608
+ ucheb(x, -7.217700e-07, tj, tj1, result);
3609
+ return result;
3610
+ }
3611
+
3612
+
3613
+ /*************************************************************************
3614
+ Tail(S, 12, 100)
3615
+ *************************************************************************/
3616
+ static double utbln12n100(double s)
3617
+ {
3618
+ double result;
3619
+ double x;
3620
+ double tj;
3621
+ double tj1;
3622
+
3623
+ result = 0;
3624
+ x = ap::minreal(2*(s-0.000000e+00)/3.700000e+00-1, 1.0);
3625
+ tj = 1;
3626
+ tj1 = x;
3627
+ ucheb(x, -4.374567e+00, tj, tj1, result);
3628
+ ucheb(x, -4.553481e+00, tj, tj1, result);
3629
+ ucheb(x, -9.541334e-01, tj, tj1, result);
3630
+ ucheb(x, -9.701907e-02, tj, tj1, result);
3631
+ ucheb(x, -1.414757e-02, tj, tj1, result);
3632
+ ucheb(x, -3.404103e-03, tj, tj1, result);
3633
+ ucheb(x, -6.234388e-04, tj, tj1, result);
3634
+ ucheb(x, -1.453762e-04, tj, tj1, result);
3635
+ ucheb(x, -3.311060e-05, tj, tj1, result);
3636
+ ucheb(x, -7.317501e-06, tj, tj1, result);
3637
+ ucheb(x, -1.713888e-06, tj, tj1, result);
3638
+ ucheb(x, -3.309583e-07, tj, tj1, result);
3639
+ ucheb(x, -4.019804e-08, tj, tj1, result);
3640
+ ucheb(x, 1.224829e-09, tj, tj1, result);
3641
+ ucheb(x, -1.349019e-08, tj, tj1, result);
3642
+ ucheb(x, -1.893302e-08, tj, tj1, result);
3643
+ return result;
3644
+ }
3645
+
3646
+
3647
+ /*************************************************************************
3648
+ Tail(S, 13, 13)
3649
+ *************************************************************************/
3650
+ static double utbln13n13(double s)
3651
+ {
3652
+ double result;
3653
+ double x;
3654
+ double tj;
3655
+ double tj1;
3656
+
3657
+ result = 0;
3658
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3659
+ tj = 1;
3660
+ tj1 = x;
3661
+ ucheb(x, -4.541046e+00, tj, tj1, result);
3662
+ ucheb(x, -4.859047e+00, tj, tj1, result);
3663
+ ucheb(x, -1.130164e+00, tj, tj1, result);
3664
+ ucheb(x, -1.689719e-01, tj, tj1, result);
3665
+ ucheb(x, -3.950693e-02, tj, tj1, result);
3666
+ ucheb(x, -1.231455e-02, tj, tj1, result);
3667
+ ucheb(x, -3.976550e-03, tj, tj1, result);
3668
+ ucheb(x, -1.538455e-03, tj, tj1, result);
3669
+ ucheb(x, -7.245603e-04, tj, tj1, result);
3670
+ ucheb(x, -4.142647e-04, tj, tj1, result);
3671
+ ucheb(x, -2.831434e-04, tj, tj1, result);
3672
+ ucheb(x, -2.032483e-04, tj, tj1, result);
3673
+ ucheb(x, -1.488405e-04, tj, tj1, result);
3674
+ ucheb(x, -1.156927e-04, tj, tj1, result);
3675
+ ucheb(x, -7.949279e-05, tj, tj1, result);
3676
+ ucheb(x, -7.532700e-05, tj, tj1, result);
3677
+ return result;
3678
+ }
3679
+
3680
+
3681
+ /*************************************************************************
3682
+ Tail(S, 13, 14)
3683
+ *************************************************************************/
3684
+ static double utbln13n14(double s)
3685
+ {
3686
+ double result;
3687
+ double x;
3688
+ double tj;
3689
+ double tj1;
3690
+
3691
+ result = 0;
3692
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3693
+ tj = 1;
3694
+ tj1 = x;
3695
+ ucheb(x, -4.525655e+00, tj, tj1, result);
3696
+ ucheb(x, -4.828341e+00, tj, tj1, result);
3697
+ ucheb(x, -1.108110e+00, tj, tj1, result);
3698
+ ucheb(x, -1.579552e-01, tj, tj1, result);
3699
+ ucheb(x, -3.488307e-02, tj, tj1, result);
3700
+ ucheb(x, -1.032328e-02, tj, tj1, result);
3701
+ ucheb(x, -2.988741e-03, tj, tj1, result);
3702
+ ucheb(x, -9.766394e-04, tj, tj1, result);
3703
+ ucheb(x, -3.388950e-04, tj, tj1, result);
3704
+ ucheb(x, -1.338179e-04, tj, tj1, result);
3705
+ ucheb(x, -6.133440e-05, tj, tj1, result);
3706
+ ucheb(x, -3.023518e-05, tj, tj1, result);
3707
+ ucheb(x, -1.110570e-05, tj, tj1, result);
3708
+ ucheb(x, 4.202332e-06, tj, tj1, result);
3709
+ ucheb(x, 1.056132e-05, tj, tj1, result);
3710
+ ucheb(x, 1.536323e-05, tj, tj1, result);
3711
+ return result;
3712
+ }
3713
+
3714
+
3715
+ /*************************************************************************
3716
+ Tail(S, 13, 15)
3717
+ *************************************************************************/
3718
+ static double utbln13n15(double s)
3719
+ {
3720
+ double result;
3721
+ double x;
3722
+ double tj;
3723
+ double tj1;
3724
+
3725
+ result = 0;
3726
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3727
+ tj = 1;
3728
+ tj1 = x;
3729
+ ucheb(x, -4.513585e+00, tj, tj1, result);
3730
+ ucheb(x, -4.803952e+00, tj, tj1, result);
3731
+ ucheb(x, -1.090686e+00, tj, tj1, result);
3732
+ ucheb(x, -1.495310e-01, tj, tj1, result);
3733
+ ucheb(x, -3.160314e-02, tj, tj1, result);
3734
+ ucheb(x, -9.073124e-03, tj, tj1, result);
3735
+ ucheb(x, -2.480313e-03, tj, tj1, result);
3736
+ ucheb(x, -7.478239e-04, tj, tj1, result);
3737
+ ucheb(x, -2.140914e-04, tj, tj1, result);
3738
+ ucheb(x, -5.311541e-05, tj, tj1, result);
3739
+ ucheb(x, -2.677105e-06, tj, tj1, result);
3740
+ ucheb(x, 1.115464e-05, tj, tj1, result);
3741
+ ucheb(x, 1.578563e-05, tj, tj1, result);
3742
+ ucheb(x, 2.044604e-05, tj, tj1, result);
3743
+ ucheb(x, 1.888939e-05, tj, tj1, result);
3744
+ ucheb(x, 2.395644e-05, tj, tj1, result);
3745
+ return result;
3746
+ }
3747
+
3748
+
3749
+ /*************************************************************************
3750
+ Tail(S, 13, 30)
3751
+ *************************************************************************/
3752
+ static double utbln13n30(double s)
3753
+ {
3754
+ double result;
3755
+ double x;
3756
+ double tj;
3757
+ double tj1;
3758
+
3759
+ result = 0;
3760
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3761
+ tj = 1;
3762
+ tj1 = x;
3763
+ ucheb(x, -4.455999e+00, tj, tj1, result);
3764
+ ucheb(x, -4.678434e+00, tj, tj1, result);
3765
+ ucheb(x, -9.995491e-01, tj, tj1, result);
3766
+ ucheb(x, -1.078100e-01, tj, tj1, result);
3767
+ ucheb(x, -1.705220e-02, tj, tj1, result);
3768
+ ucheb(x, -4.258739e-03, tj, tj1, result);
3769
+ ucheb(x, -8.671526e-04, tj, tj1, result);
3770
+ ucheb(x, -2.185458e-04, tj, tj1, result);
3771
+ ucheb(x, -5.507764e-05, tj, tj1, result);
3772
+ ucheb(x, -1.411446e-05, tj, tj1, result);
3773
+ ucheb(x, -4.044355e-06, tj, tj1, result);
3774
+ ucheb(x, -1.285765e-06, tj, tj1, result);
3775
+ ucheb(x, -5.345282e-07, tj, tj1, result);
3776
+ ucheb(x, -3.066940e-07, tj, tj1, result);
3777
+ ucheb(x, -1.962037e-07, tj, tj1, result);
3778
+ ucheb(x, -1.723644e-07, tj, tj1, result);
3779
+ return result;
3780
+ }
3781
+
3782
+
3783
+ /*************************************************************************
3784
+ Tail(S, 13, 100)
3785
+ *************************************************************************/
3786
+ static double utbln13n100(double s)
3787
+ {
3788
+ double result;
3789
+ double x;
3790
+ double tj;
3791
+ double tj1;
3792
+
3793
+ result = 0;
3794
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3795
+ tj = 1;
3796
+ tj1 = x;
3797
+ ucheb(x, -4.446787e+00, tj, tj1, result);
3798
+ ucheb(x, -4.640804e+00, tj, tj1, result);
3799
+ ucheb(x, -9.671552e-01, tj, tj1, result);
3800
+ ucheb(x, -9.364990e-02, tj, tj1, result);
3801
+ ucheb(x, -1.274444e-02, tj, tj1, result);
3802
+ ucheb(x, -3.047440e-03, tj, tj1, result);
3803
+ ucheb(x, -5.161439e-04, tj, tj1, result);
3804
+ ucheb(x, -1.171729e-04, tj, tj1, result);
3805
+ ucheb(x, -2.562171e-05, tj, tj1, result);
3806
+ ucheb(x, -5.359762e-06, tj, tj1, result);
3807
+ ucheb(x, -1.275494e-06, tj, tj1, result);
3808
+ ucheb(x, -2.747635e-07, tj, tj1, result);
3809
+ ucheb(x, -5.700292e-08, tj, tj1, result);
3810
+ ucheb(x, -2.565559e-09, tj, tj1, result);
3811
+ ucheb(x, 5.005396e-09, tj, tj1, result);
3812
+ ucheb(x, 3.335794e-09, tj, tj1, result);
3813
+ return result;
3814
+ }
3815
+
3816
+
3817
+ /*************************************************************************
3818
+ Tail(S, 14, 14)
3819
+ *************************************************************************/
3820
+ static double utbln14n14(double s)
3821
+ {
3822
+ double result;
3823
+ double x;
3824
+ double tj;
3825
+ double tj1;
3826
+
3827
+ result = 0;
3828
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3829
+ tj = 1;
3830
+ tj1 = x;
3831
+ ucheb(x, -4.510624e+00, tj, tj1, result);
3832
+ ucheb(x, -4.798584e+00, tj, tj1, result);
3833
+ ucheb(x, -1.087107e+00, tj, tj1, result);
3834
+ ucheb(x, -1.478532e-01, tj, tj1, result);
3835
+ ucheb(x, -3.098050e-02, tj, tj1, result);
3836
+ ucheb(x, -8.855986e-03, tj, tj1, result);
3837
+ ucheb(x, -2.409083e-03, tj, tj1, result);
3838
+ ucheb(x, -7.299536e-04, tj, tj1, result);
3839
+ ucheb(x, -2.176177e-04, tj, tj1, result);
3840
+ ucheb(x, -6.479417e-05, tj, tj1, result);
3841
+ ucheb(x, -1.812761e-05, tj, tj1, result);
3842
+ ucheb(x, -5.225872e-06, tj, tj1, result);
3843
+ ucheb(x, 4.516521e-07, tj, tj1, result);
3844
+ ucheb(x, 6.730551e-06, tj, tj1, result);
3845
+ ucheb(x, 9.237563e-06, tj, tj1, result);
3846
+ ucheb(x, 1.611820e-05, tj, tj1, result);
3847
+ return result;
3848
+ }
3849
+
3850
+
3851
+ /*************************************************************************
3852
+ Tail(S, 14, 15)
3853
+ *************************************************************************/
3854
+ static double utbln14n15(double s)
3855
+ {
3856
+ double result;
3857
+ double x;
3858
+ double tj;
3859
+ double tj1;
3860
+
3861
+ result = 0;
3862
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3863
+ tj = 1;
3864
+ tj1 = x;
3865
+ ucheb(x, -4.498681e+00, tj, tj1, result);
3866
+ ucheb(x, -4.774668e+00, tj, tj1, result);
3867
+ ucheb(x, -1.070267e+00, tj, tj1, result);
3868
+ ucheb(x, -1.399348e-01, tj, tj1, result);
3869
+ ucheb(x, -2.807239e-02, tj, tj1, result);
3870
+ ucheb(x, -7.845763e-03, tj, tj1, result);
3871
+ ucheb(x, -2.071773e-03, tj, tj1, result);
3872
+ ucheb(x, -6.261698e-04, tj, tj1, result);
3873
+ ucheb(x, -2.011695e-04, tj, tj1, result);
3874
+ ucheb(x, -7.305946e-05, tj, tj1, result);
3875
+ ucheb(x, -3.879295e-05, tj, tj1, result);
3876
+ ucheb(x, -2.999439e-05, tj, tj1, result);
3877
+ ucheb(x, -2.904438e-05, tj, tj1, result);
3878
+ ucheb(x, -2.944986e-05, tj, tj1, result);
3879
+ ucheb(x, -2.373908e-05, tj, tj1, result);
3880
+ ucheb(x, -2.140794e-05, tj, tj1, result);
3881
+ return result;
3882
+ }
3883
+
3884
+
3885
+ /*************************************************************************
3886
+ Tail(S, 14, 30)
3887
+ *************************************************************************/
3888
+ static double utbln14n30(double s)
3889
+ {
3890
+ double result;
3891
+ double x;
3892
+ double tj;
3893
+ double tj1;
3894
+
3895
+ result = 0;
3896
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3897
+ tj = 1;
3898
+ tj1 = x;
3899
+ ucheb(x, -4.440378e+00, tj, tj1, result);
3900
+ ucheb(x, -4.649587e+00, tj, tj1, result);
3901
+ ucheb(x, -9.807829e-01, tj, tj1, result);
3902
+ ucheb(x, -9.989753e-02, tj, tj1, result);
3903
+ ucheb(x, -1.463646e-02, tj, tj1, result);
3904
+ ucheb(x, -3.586580e-03, tj, tj1, result);
3905
+ ucheb(x, -6.745917e-04, tj, tj1, result);
3906
+ ucheb(x, -1.635398e-04, tj, tj1, result);
3907
+ ucheb(x, -3.923172e-05, tj, tj1, result);
3908
+ ucheb(x, -9.446699e-06, tj, tj1, result);
3909
+ ucheb(x, -2.613892e-06, tj, tj1, result);
3910
+ ucheb(x, -8.214073e-07, tj, tj1, result);
3911
+ ucheb(x, -3.651683e-07, tj, tj1, result);
3912
+ ucheb(x, -2.272777e-07, tj, tj1, result);
3913
+ ucheb(x, -1.464988e-07, tj, tj1, result);
3914
+ ucheb(x, -1.109803e-07, tj, tj1, result);
3915
+ return result;
3916
+ }
3917
+
3918
+
3919
+ /*************************************************************************
3920
+ Tail(S, 14, 100)
3921
+ *************************************************************************/
3922
+ static double utbln14n100(double s)
3923
+ {
3924
+ double result;
3925
+ double x;
3926
+ double tj;
3927
+ double tj1;
3928
+
3929
+ result = 0;
3930
+ x = ap::minreal(2*(s-0.000000e+00)/3.750000e+00-1, 1.0);
3931
+ tj = 1;
3932
+ tj1 = x;
3933
+ ucheb(x, -4.429701e+00, tj, tj1, result);
3934
+ ucheb(x, -4.610577e+00, tj, tj1, result);
3935
+ ucheb(x, -9.482675e-01, tj, tj1, result);
3936
+ ucheb(x, -8.605550e-02, tj, tj1, result);
3937
+ ucheb(x, -1.062151e-02, tj, tj1, result);
3938
+ ucheb(x, -2.525154e-03, tj, tj1, result);
3939
+ ucheb(x, -3.835983e-04, tj, tj1, result);
3940
+ ucheb(x, -8.411440e-05, tj, tj1, result);
3941
+ ucheb(x, -1.744901e-05, tj, tj1, result);
3942
+ ucheb(x, -3.318850e-06, tj, tj1, result);
3943
+ ucheb(x, -7.692100e-07, tj, tj1, result);
3944
+ ucheb(x, -1.536270e-07, tj, tj1, result);
3945
+ ucheb(x, -3.705888e-08, tj, tj1, result);
3946
+ ucheb(x, -7.999599e-09, tj, tj1, result);
3947
+ ucheb(x, -2.908395e-09, tj, tj1, result);
3948
+ ucheb(x, 1.546923e-09, tj, tj1, result);
3949
+ return result;
3950
+ }
3951
+
3952
+
3953
+ /*************************************************************************
3954
+ Tail(S, N1, N2)
3955
+ *************************************************************************/
3956
+ static double usigma(double s, int n1, int n2)
3957
+ {
3958
+ double result;
3959
+ double f0;
3960
+ double f1;
3961
+ double f2;
3962
+ double f3;
3963
+ double f4;
3964
+ double s0;
3965
+ double s1;
3966
+ double s2;
3967
+ double s3;
3968
+ double s4;
3969
+
3970
+
3971
+ //
3972
+ // N1=5, N2 = 5, 6, 7, ...
3973
+ //
3974
+ if( ap::minint(n1, n2)==5 )
3975
+ {
3976
+ if( ap::maxint(n1, n2)==5 )
3977
+ {
3978
+ result = utbln5n5(s);
3979
+ }
3980
+ if( ap::maxint(n1, n2)==6 )
3981
+ {
3982
+ result = utbln5n6(s);
3983
+ }
3984
+ if( ap::maxint(n1, n2)==7 )
3985
+ {
3986
+ result = utbln5n7(s);
3987
+ }
3988
+ if( ap::maxint(n1, n2)==8 )
3989
+ {
3990
+ result = utbln5n8(s);
3991
+ }
3992
+ if( ap::maxint(n1, n2)==9 )
3993
+ {
3994
+ result = utbln5n9(s);
3995
+ }
3996
+ if( ap::maxint(n1, n2)==10 )
3997
+ {
3998
+ result = utbln5n10(s);
3999
+ }
4000
+ if( ap::maxint(n1, n2)==11 )
4001
+ {
4002
+ result = utbln5n11(s);
4003
+ }
4004
+ if( ap::maxint(n1, n2)==12 )
4005
+ {
4006
+ result = utbln5n12(s);
4007
+ }
4008
+ if( ap::maxint(n1, n2)==13 )
4009
+ {
4010
+ result = utbln5n13(s);
4011
+ }
4012
+ if( ap::maxint(n1, n2)==14 )
4013
+ {
4014
+ result = utbln5n14(s);
4015
+ }
4016
+ if( ap::maxint(n1, n2)==15 )
4017
+ {
4018
+ result = utbln5n15(s);
4019
+ }
4020
+ if( ap::maxint(n1, n2)==16 )
4021
+ {
4022
+ result = utbln5n16(s);
4023
+ }
4024
+ if( ap::maxint(n1, n2)==17 )
4025
+ {
4026
+ result = utbln5n17(s);
4027
+ }
4028
+ if( ap::maxint(n1, n2)==18 )
4029
+ {
4030
+ result = utbln5n18(s);
4031
+ }
4032
+ if( ap::maxint(n1, n2)==19 )
4033
+ {
4034
+ result = utbln5n19(s);
4035
+ }
4036
+ if( ap::maxint(n1, n2)==20 )
4037
+ {
4038
+ result = utbln5n20(s);
4039
+ }
4040
+ if( ap::maxint(n1, n2)==21 )
4041
+ {
4042
+ result = utbln5n21(s);
4043
+ }
4044
+ if( ap::maxint(n1, n2)==22 )
4045
+ {
4046
+ result = utbln5n22(s);
4047
+ }
4048
+ if( ap::maxint(n1, n2)==23 )
4049
+ {
4050
+ result = utbln5n23(s);
4051
+ }
4052
+ if( ap::maxint(n1, n2)==24 )
4053
+ {
4054
+ result = utbln5n24(s);
4055
+ }
4056
+ if( ap::maxint(n1, n2)==25 )
4057
+ {
4058
+ result = utbln5n25(s);
4059
+ }
4060
+ if( ap::maxint(n1, n2)==26 )
4061
+ {
4062
+ result = utbln5n26(s);
4063
+ }
4064
+ if( ap::maxint(n1, n2)==27 )
4065
+ {
4066
+ result = utbln5n27(s);
4067
+ }
4068
+ if( ap::maxint(n1, n2)==28 )
4069
+ {
4070
+ result = utbln5n28(s);
4071
+ }
4072
+ if( ap::maxint(n1, n2)==29 )
4073
+ {
4074
+ result = utbln5n29(s);
4075
+ }
4076
+ if( ap::maxint(n1, n2)>29 )
4077
+ {
4078
+ f0 = utbln5n15(s);
4079
+ f1 = utbln5n30(s);
4080
+ f2 = utbln5n100(s);
4081
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4082
+ }
4083
+ return result;
4084
+ }
4085
+
4086
+ //
4087
+ // N1=6, N2 = 6, 7, 8, ...
4088
+ //
4089
+ if( ap::minint(n1, n2)==6 )
4090
+ {
4091
+ if( ap::maxint(n1, n2)==6 )
4092
+ {
4093
+ result = utbln6n6(s);
4094
+ }
4095
+ if( ap::maxint(n1, n2)==7 )
4096
+ {
4097
+ result = utbln6n7(s);
4098
+ }
4099
+ if( ap::maxint(n1, n2)==8 )
4100
+ {
4101
+ result = utbln6n8(s);
4102
+ }
4103
+ if( ap::maxint(n1, n2)==9 )
4104
+ {
4105
+ result = utbln6n9(s);
4106
+ }
4107
+ if( ap::maxint(n1, n2)==10 )
4108
+ {
4109
+ result = utbln6n10(s);
4110
+ }
4111
+ if( ap::maxint(n1, n2)==11 )
4112
+ {
4113
+ result = utbln6n11(s);
4114
+ }
4115
+ if( ap::maxint(n1, n2)==12 )
4116
+ {
4117
+ result = utbln6n12(s);
4118
+ }
4119
+ if( ap::maxint(n1, n2)==13 )
4120
+ {
4121
+ result = utbln6n13(s);
4122
+ }
4123
+ if( ap::maxint(n1, n2)==14 )
4124
+ {
4125
+ result = utbln6n14(s);
4126
+ }
4127
+ if( ap::maxint(n1, n2)==15 )
4128
+ {
4129
+ result = utbln6n15(s);
4130
+ }
4131
+ if( ap::maxint(n1, n2)>15 )
4132
+ {
4133
+ f0 = utbln6n15(s);
4134
+ f1 = utbln6n30(s);
4135
+ f2 = utbln6n100(s);
4136
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4137
+ }
4138
+ return result;
4139
+ }
4140
+
4141
+ //
4142
+ // N1=7, N2 = 7, 8, ...
4143
+ //
4144
+ if( ap::minint(n1, n2)==7 )
4145
+ {
4146
+ if( ap::maxint(n1, n2)==7 )
4147
+ {
4148
+ result = utbln7n7(s);
4149
+ }
4150
+ if( ap::maxint(n1, n2)==8 )
4151
+ {
4152
+ result = utbln7n8(s);
4153
+ }
4154
+ if( ap::maxint(n1, n2)==9 )
4155
+ {
4156
+ result = utbln7n9(s);
4157
+ }
4158
+ if( ap::maxint(n1, n2)==10 )
4159
+ {
4160
+ result = utbln7n10(s);
4161
+ }
4162
+ if( ap::maxint(n1, n2)==11 )
4163
+ {
4164
+ result = utbln7n11(s);
4165
+ }
4166
+ if( ap::maxint(n1, n2)==12 )
4167
+ {
4168
+ result = utbln7n12(s);
4169
+ }
4170
+ if( ap::maxint(n1, n2)==13 )
4171
+ {
4172
+ result = utbln7n13(s);
4173
+ }
4174
+ if( ap::maxint(n1, n2)==14 )
4175
+ {
4176
+ result = utbln7n14(s);
4177
+ }
4178
+ if( ap::maxint(n1, n2)==15 )
4179
+ {
4180
+ result = utbln7n15(s);
4181
+ }
4182
+ if( ap::maxint(n1, n2)>15 )
4183
+ {
4184
+ f0 = utbln7n15(s);
4185
+ f1 = utbln7n30(s);
4186
+ f2 = utbln7n100(s);
4187
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4188
+ }
4189
+ return result;
4190
+ }
4191
+
4192
+ //
4193
+ // N1=8, N2 = 8, 9, 10, ...
4194
+ //
4195
+ if( ap::minint(n1, n2)==8 )
4196
+ {
4197
+ if( ap::maxint(n1, n2)==8 )
4198
+ {
4199
+ result = utbln8n8(s);
4200
+ }
4201
+ if( ap::maxint(n1, n2)==9 )
4202
+ {
4203
+ result = utbln8n9(s);
4204
+ }
4205
+ if( ap::maxint(n1, n2)==10 )
4206
+ {
4207
+ result = utbln8n10(s);
4208
+ }
4209
+ if( ap::maxint(n1, n2)==11 )
4210
+ {
4211
+ result = utbln8n11(s);
4212
+ }
4213
+ if( ap::maxint(n1, n2)==12 )
4214
+ {
4215
+ result = utbln8n12(s);
4216
+ }
4217
+ if( ap::maxint(n1, n2)==13 )
4218
+ {
4219
+ result = utbln8n13(s);
4220
+ }
4221
+ if( ap::maxint(n1, n2)==14 )
4222
+ {
4223
+ result = utbln8n14(s);
4224
+ }
4225
+ if( ap::maxint(n1, n2)==15 )
4226
+ {
4227
+ result = utbln8n15(s);
4228
+ }
4229
+ if( ap::maxint(n1, n2)>15 )
4230
+ {
4231
+ f0 = utbln8n15(s);
4232
+ f1 = utbln8n30(s);
4233
+ f2 = utbln8n100(s);
4234
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4235
+ }
4236
+ return result;
4237
+ }
4238
+
4239
+ //
4240
+ // N1=9, N2 = 9, 10, ...
4241
+ //
4242
+ if( ap::minint(n1, n2)==9 )
4243
+ {
4244
+ if( ap::maxint(n1, n2)==9 )
4245
+ {
4246
+ result = utbln9n9(s);
4247
+ }
4248
+ if( ap::maxint(n1, n2)==10 )
4249
+ {
4250
+ result = utbln9n10(s);
4251
+ }
4252
+ if( ap::maxint(n1, n2)==11 )
4253
+ {
4254
+ result = utbln9n11(s);
4255
+ }
4256
+ if( ap::maxint(n1, n2)==12 )
4257
+ {
4258
+ result = utbln9n12(s);
4259
+ }
4260
+ if( ap::maxint(n1, n2)==13 )
4261
+ {
4262
+ result = utbln9n13(s);
4263
+ }
4264
+ if( ap::maxint(n1, n2)==14 )
4265
+ {
4266
+ result = utbln9n14(s);
4267
+ }
4268
+ if( ap::maxint(n1, n2)==15 )
4269
+ {
4270
+ result = utbln9n15(s);
4271
+ }
4272
+ if( ap::maxint(n1, n2)>15 )
4273
+ {
4274
+ f0 = utbln9n15(s);
4275
+ f1 = utbln9n30(s);
4276
+ f2 = utbln9n100(s);
4277
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4278
+ }
4279
+ return result;
4280
+ }
4281
+
4282
+ //
4283
+ // N1=10, N2 = 10, 11, ...
4284
+ //
4285
+ if( ap::minint(n1, n2)==10 )
4286
+ {
4287
+ if( ap::maxint(n1, n2)==10 )
4288
+ {
4289
+ result = utbln10n10(s);
4290
+ }
4291
+ if( ap::maxint(n1, n2)==11 )
4292
+ {
4293
+ result = utbln10n11(s);
4294
+ }
4295
+ if( ap::maxint(n1, n2)==12 )
4296
+ {
4297
+ result = utbln10n12(s);
4298
+ }
4299
+ if( ap::maxint(n1, n2)==13 )
4300
+ {
4301
+ result = utbln10n13(s);
4302
+ }
4303
+ if( ap::maxint(n1, n2)==14 )
4304
+ {
4305
+ result = utbln10n14(s);
4306
+ }
4307
+ if( ap::maxint(n1, n2)==15 )
4308
+ {
4309
+ result = utbln10n15(s);
4310
+ }
4311
+ if( ap::maxint(n1, n2)>15 )
4312
+ {
4313
+ f0 = utbln10n15(s);
4314
+ f1 = utbln10n30(s);
4315
+ f2 = utbln10n100(s);
4316
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4317
+ }
4318
+ return result;
4319
+ }
4320
+
4321
+ //
4322
+ // N1=11, N2 = 11, 12, ...
4323
+ //
4324
+ if( ap::minint(n1, n2)==11 )
4325
+ {
4326
+ if( ap::maxint(n1, n2)==11 )
4327
+ {
4328
+ result = utbln11n11(s);
4329
+ }
4330
+ if( ap::maxint(n1, n2)==12 )
4331
+ {
4332
+ result = utbln11n12(s);
4333
+ }
4334
+ if( ap::maxint(n1, n2)==13 )
4335
+ {
4336
+ result = utbln11n13(s);
4337
+ }
4338
+ if( ap::maxint(n1, n2)==14 )
4339
+ {
4340
+ result = utbln11n14(s);
4341
+ }
4342
+ if( ap::maxint(n1, n2)==15 )
4343
+ {
4344
+ result = utbln11n15(s);
4345
+ }
4346
+ if( ap::maxint(n1, n2)>15 )
4347
+ {
4348
+ f0 = utbln11n15(s);
4349
+ f1 = utbln11n30(s);
4350
+ f2 = utbln11n100(s);
4351
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4352
+ }
4353
+ return result;
4354
+ }
4355
+
4356
+ //
4357
+ // N1=12, N2 = 12, 13, ...
4358
+ //
4359
+ if( ap::minint(n1, n2)==12 )
4360
+ {
4361
+ if( ap::maxint(n1, n2)==12 )
4362
+ {
4363
+ result = utbln12n12(s);
4364
+ }
4365
+ if( ap::maxint(n1, n2)==13 )
4366
+ {
4367
+ result = utbln12n13(s);
4368
+ }
4369
+ if( ap::maxint(n1, n2)==14 )
4370
+ {
4371
+ result = utbln12n14(s);
4372
+ }
4373
+ if( ap::maxint(n1, n2)==15 )
4374
+ {
4375
+ result = utbln12n15(s);
4376
+ }
4377
+ if( ap::maxint(n1, n2)>15 )
4378
+ {
4379
+ f0 = utbln12n15(s);
4380
+ f1 = utbln12n30(s);
4381
+ f2 = utbln12n100(s);
4382
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4383
+ }
4384
+ return result;
4385
+ }
4386
+
4387
+ //
4388
+ // N1=13, N2 = 13, 14, ...
4389
+ //
4390
+ if( ap::minint(n1, n2)==13 )
4391
+ {
4392
+ if( ap::maxint(n1, n2)==13 )
4393
+ {
4394
+ result = utbln13n13(s);
4395
+ }
4396
+ if( ap::maxint(n1, n2)==14 )
4397
+ {
4398
+ result = utbln13n14(s);
4399
+ }
4400
+ if( ap::maxint(n1, n2)==15 )
4401
+ {
4402
+ result = utbln13n15(s);
4403
+ }
4404
+ if( ap::maxint(n1, n2)>15 )
4405
+ {
4406
+ f0 = utbln13n15(s);
4407
+ f1 = utbln13n30(s);
4408
+ f2 = utbln13n100(s);
4409
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4410
+ }
4411
+ return result;
4412
+ }
4413
+
4414
+ //
4415
+ // N1=14, N2 = 14, 15, ...
4416
+ //
4417
+ if( ap::minint(n1, n2)==14 )
4418
+ {
4419
+ if( ap::maxint(n1, n2)==14 )
4420
+ {
4421
+ result = utbln14n14(s);
4422
+ }
4423
+ if( ap::maxint(n1, n2)==15 )
4424
+ {
4425
+ result = utbln14n15(s);
4426
+ }
4427
+ if( ap::maxint(n1, n2)>15 )
4428
+ {
4429
+ f0 = utbln14n15(s);
4430
+ f1 = utbln14n30(s);
4431
+ f2 = utbln14n100(s);
4432
+ result = uninterpolate(f0, f1, f2, ap::maxint(n1, n2));
4433
+ }
4434
+ return result;
4435
+ }
4436
+
4437
+ //
4438
+ // N1 >= 15, N2 >= 15
4439
+ //
4440
+ if( s>4 )
4441
+ {
4442
+ s = 4;
4443
+ }
4444
+ if( s<3 )
4445
+ {
4446
+ s0 = 0.000000e+00;
4447
+ f0 = usigma000(n1, n2);
4448
+ s1 = 7.500000e-01;
4449
+ f1 = usigma075(n1, n2);
4450
+ s2 = 1.500000e+00;
4451
+ f2 = usigma150(n1, n2);
4452
+ s3 = 2.250000e+00;
4453
+ f3 = usigma225(n1, n2);
4454
+ s4 = 3.000000e+00;
4455
+ f4 = usigma300(n1, n2);
4456
+ f1 = ((s-s0)*f1-(s-s1)*f0)/(s1-s0);
4457
+ f2 = ((s-s0)*f2-(s-s2)*f0)/(s2-s0);
4458
+ f3 = ((s-s0)*f3-(s-s3)*f0)/(s3-s0);
4459
+ f4 = ((s-s0)*f4-(s-s4)*f0)/(s4-s0);
4460
+ f2 = ((s-s1)*f2-(s-s2)*f1)/(s2-s1);
4461
+ f3 = ((s-s1)*f3-(s-s3)*f1)/(s3-s1);
4462
+ f4 = ((s-s1)*f4-(s-s4)*f1)/(s4-s1);
4463
+ f3 = ((s-s2)*f3-(s-s3)*f2)/(s3-s2);
4464
+ f4 = ((s-s2)*f4-(s-s4)*f2)/(s4-s2);
4465
+ f4 = ((s-s3)*f4-(s-s4)*f3)/(s4-s3);
4466
+ result = f4;
4467
+ }
4468
+ else
4469
+ {
4470
+ s0 = 3.000000e+00;
4471
+ f0 = usigma300(n1, n2);
4472
+ s1 = 3.333333e+00;
4473
+ f1 = usigma333(n1, n2);
4474
+ s2 = 3.666667e+00;
4475
+ f2 = usigma367(n1, n2);
4476
+ s3 = 4.000000e+00;
4477
+ f3 = usigma400(n1, n2);
4478
+ f1 = ((s-s0)*f1-(s-s1)*f0)/(s1-s0);
4479
+ f2 = ((s-s0)*f2-(s-s2)*f0)/(s2-s0);
4480
+ f3 = ((s-s0)*f3-(s-s3)*f0)/(s3-s0);
4481
+ f2 = ((s-s1)*f2-(s-s2)*f1)/(s2-s1);
4482
+ f3 = ((s-s1)*f3-(s-s3)*f1)/(s3-s1);
4483
+ f3 = ((s-s2)*f3-(s-s3)*f2)/(s3-s2);
4484
+ result = f3;
4485
+ }
4486
+ return result;
4487
+ }
4488
+
4489
+
4490
+