goscript 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/compiler/analysis.go +30 -22
  2. package/compiler/analysis_test.go +14 -0
  3. package/compiler/assignment.go +45 -7
  4. package/compiler/builtin_test.go +2 -0
  5. package/compiler/compiler.go +15 -89
  6. package/compiler/compiler_test.go +0 -53
  7. package/compiler/composite-lit.go +60 -17
  8. package/compiler/decl.go +1 -1
  9. package/compiler/expr-call.go +347 -30
  10. package/compiler/expr-selector.go +28 -2
  11. package/compiler/expr.go +79 -38
  12. package/compiler/lit.go +112 -3
  13. package/compiler/primitive.go +6 -6
  14. package/compiler/protobuf.go +0 -5
  15. package/compiler/sanitize.go +101 -0
  16. package/compiler/spec-value.go +25 -18
  17. package/compiler/stmt-assign.go +128 -91
  18. package/compiler/stmt-for.go +78 -1
  19. package/compiler/stmt-range.go +333 -461
  20. package/compiler/stmt.go +46 -9
  21. package/compiler/type.go +14 -11
  22. package/dist/gs/builtin/builtin.d.ts +8 -0
  23. package/dist/gs/builtin/builtin.js +31 -0
  24. package/dist/gs/builtin/builtin.js.map +1 -1
  25. package/dist/gs/builtin/map.d.ts +4 -4
  26. package/dist/gs/builtin/map.js +12 -6
  27. package/dist/gs/builtin/map.js.map +1 -1
  28. package/dist/gs/builtin/slice.d.ts +14 -8
  29. package/dist/gs/builtin/slice.js +131 -31
  30. package/dist/gs/builtin/slice.js.map +1 -1
  31. package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
  32. package/dist/gs/github.com/pkg/errors/errors.js +232 -0
  33. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
  34. package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
  35. package/dist/gs/github.com/pkg/errors/go113.js +34 -0
  36. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
  37. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
  38. package/dist/gs/github.com/pkg/errors/index.js +4 -0
  39. package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
  40. package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
  41. package/dist/gs/github.com/pkg/errors/stack.js +111 -0
  42. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
  43. package/dist/gs/maps/index.d.ts +2 -0
  44. package/dist/gs/maps/index.js +3 -0
  45. package/dist/gs/maps/index.js.map +1 -0
  46. package/dist/gs/maps/iter.d.ts +7 -0
  47. package/dist/gs/maps/iter.gs.d.ts +7 -0
  48. package/dist/gs/maps/iter.gs.js +65 -0
  49. package/dist/gs/maps/iter.gs.js.map +1 -0
  50. package/dist/gs/maps/iter.js +57 -0
  51. package/dist/gs/maps/iter.js.map +1 -0
  52. package/dist/gs/maps/maps.d.ts +7 -0
  53. package/dist/gs/maps/maps.gs.d.ts +7 -0
  54. package/dist/gs/maps/maps.gs.js +79 -0
  55. package/dist/gs/maps/maps.gs.js.map +1 -0
  56. package/dist/gs/maps/maps.js +67 -0
  57. package/dist/gs/maps/maps.js.map +1 -0
  58. package/dist/gs/math/abs.gs.d.ts +1 -0
  59. package/dist/gs/math/abs.gs.js +10 -0
  60. package/dist/gs/math/abs.gs.js.map +1 -0
  61. package/dist/gs/math/acosh.gs.d.ts +2 -0
  62. package/dist/gs/math/acosh.gs.js +14 -0
  63. package/dist/gs/math/acosh.gs.js.map +1 -0
  64. package/dist/gs/math/asin.gs.d.ts +4 -0
  65. package/dist/gs/math/asin.gs.js +24 -0
  66. package/dist/gs/math/asin.gs.js.map +1 -0
  67. package/dist/gs/math/asinh.gs.d.ts +2 -0
  68. package/dist/gs/math/asinh.gs.js +14 -0
  69. package/dist/gs/math/asinh.gs.js.map +1 -0
  70. package/dist/gs/math/atan.gs.d.ts +4 -0
  71. package/dist/gs/math/atan.gs.js +22 -0
  72. package/dist/gs/math/atan.gs.js.map +1 -0
  73. package/dist/gs/math/atan2.gs.d.ts +2 -0
  74. package/dist/gs/math/atan2.gs.js +30 -0
  75. package/dist/gs/math/atan2.gs.js.map +1 -0
  76. package/dist/gs/math/atanh.gs.d.ts +2 -0
  77. package/dist/gs/math/atanh.gs.js +16 -0
  78. package/dist/gs/math/atanh.gs.js.map +1 -0
  79. package/dist/gs/math/bits.gs.d.ts +5 -0
  80. package/dist/gs/math/bits.gs.js +46 -0
  81. package/dist/gs/math/bits.gs.js.map +1 -0
  82. package/dist/gs/math/cbrt.gs.d.ts +2 -0
  83. package/dist/gs/math/cbrt.gs.js +14 -0
  84. package/dist/gs/math/cbrt.gs.js.map +1 -0
  85. package/dist/gs/math/const.gs.d.ts +30 -0
  86. package/dist/gs/math/const.gs.js +61 -0
  87. package/dist/gs/math/const.gs.js.map +1 -0
  88. package/dist/gs/math/copysign.gs.d.ts +1 -0
  89. package/dist/gs/math/copysign.gs.js +20 -0
  90. package/dist/gs/math/copysign.gs.js.map +1 -0
  91. package/dist/gs/math/dim.gs.d.ts +5 -0
  92. package/dist/gs/math/dim.gs.js +69 -0
  93. package/dist/gs/math/dim.gs.js.map +1 -0
  94. package/dist/gs/math/erf.gs.d.ts +4 -0
  95. package/dist/gs/math/erf.gs.js +336 -0
  96. package/dist/gs/math/erf.gs.js.map +1 -0
  97. package/dist/gs/math/erfinv.gs.d.ts +2 -0
  98. package/dist/gs/math/erfinv.gs.js +118 -0
  99. package/dist/gs/math/erfinv.gs.js.map +1 -0
  100. package/dist/gs/math/exp.gs.d.ts +5 -0
  101. package/dist/gs/math/exp.gs.js +30 -0
  102. package/dist/gs/math/exp.gs.js.map +1 -0
  103. package/dist/gs/math/expm1.gs.d.ts +2 -0
  104. package/dist/gs/math/expm1.gs.js +17 -0
  105. package/dist/gs/math/expm1.gs.js.map +1 -0
  106. package/dist/gs/math/floor.gs.d.ts +8 -0
  107. package/dist/gs/math/floor.gs.js +75 -0
  108. package/dist/gs/math/floor.gs.js.map +1 -0
  109. package/dist/gs/math/fma.gs.d.ts +1 -0
  110. package/dist/gs/math/fma.gs.js +8 -0
  111. package/dist/gs/math/fma.gs.js.map +1 -0
  112. package/dist/gs/math/frexp.gs.d.ts +2 -0
  113. package/dist/gs/math/frexp.gs.js +28 -0
  114. package/dist/gs/math/frexp.gs.js.map +1 -0
  115. package/dist/gs/math/gamma.gs.d.ts +3 -0
  116. package/dist/gs/math/gamma.gs.js +149 -0
  117. package/dist/gs/math/gamma.gs.js.map +1 -0
  118. package/dist/gs/math/hypot.gs.d.ts +2 -0
  119. package/dist/gs/math/hypot.gs.js +16 -0
  120. package/dist/gs/math/hypot.gs.js.map +1 -0
  121. package/dist/gs/math/index.d.ts +44 -0
  122. package/dist/gs/math/index.js +45 -0
  123. package/dist/gs/math/index.js.map +1 -0
  124. package/dist/gs/math/j0.gs.d.ts +4 -0
  125. package/dist/gs/math/j0.gs.js +228 -0
  126. package/dist/gs/math/j0.gs.js.map +1 -0
  127. package/dist/gs/math/j1.gs.d.ts +4 -0
  128. package/dist/gs/math/j1.gs.js +211 -0
  129. package/dist/gs/math/j1.gs.js.map +1 -0
  130. package/dist/gs/math/jn.gs.d.ts +2 -0
  131. package/dist/gs/math/jn.gs.js +412 -0
  132. package/dist/gs/math/jn.gs.js.map +1 -0
  133. package/dist/gs/math/ldexp.gs.d.ts +2 -0
  134. package/dist/gs/math/ldexp.gs.js +20 -0
  135. package/dist/gs/math/ldexp.gs.js.map +1 -0
  136. package/dist/gs/math/lgamma.gs.d.ts +2 -0
  137. package/dist/gs/math/lgamma.gs.js +243 -0
  138. package/dist/gs/math/lgamma.gs.js.map +1 -0
  139. package/dist/gs/math/log.gs.d.ts +2 -0
  140. package/dist/gs/math/log.gs.js +16 -0
  141. package/dist/gs/math/log.gs.js.map +1 -0
  142. package/dist/gs/math/log10.gs.d.ts +4 -0
  143. package/dist/gs/math/log10.gs.js +17 -0
  144. package/dist/gs/math/log10.gs.js.map +1 -0
  145. package/dist/gs/math/log1p.gs.d.ts +2 -0
  146. package/dist/gs/math/log1p.gs.js +17 -0
  147. package/dist/gs/math/log1p.gs.js.map +1 -0
  148. package/dist/gs/math/logb.gs.d.ts +3 -0
  149. package/dist/gs/math/logb.gs.js +43 -0
  150. package/dist/gs/math/logb.gs.js.map +1 -0
  151. package/dist/gs/math/mod.gs.d.ts +2 -0
  152. package/dist/gs/math/mod.gs.js +26 -0
  153. package/dist/gs/math/mod.gs.js.map +1 -0
  154. package/dist/gs/math/modf.gs.d.ts +2 -0
  155. package/dist/gs/math/modf.gs.js +24 -0
  156. package/dist/gs/math/modf.gs.js.map +1 -0
  157. package/dist/gs/math/nextafter.gs.d.ts +2 -0
  158. package/dist/gs/math/nextafter.gs.js +66 -0
  159. package/dist/gs/math/nextafter.gs.js.map +1 -0
  160. package/dist/gs/math/pow.gs.d.ts +3 -0
  161. package/dist/gs/math/pow.gs.js +40 -0
  162. package/dist/gs/math/pow.gs.js.map +1 -0
  163. package/dist/gs/math/pow10.gs.d.ts +1 -0
  164. package/dist/gs/math/pow10.gs.js +14 -0
  165. package/dist/gs/math/pow10.gs.js.map +1 -0
  166. package/dist/gs/math/remainder.gs.d.ts +2 -0
  167. package/dist/gs/math/remainder.gs.js +25 -0
  168. package/dist/gs/math/remainder.gs.js.map +1 -0
  169. package/dist/gs/math/signbit.gs.d.ts +1 -0
  170. package/dist/gs/math/signbit.gs.js +5 -0
  171. package/dist/gs/math/signbit.gs.js.map +1 -0
  172. package/dist/gs/math/sin.gs.d.ts +4 -0
  173. package/dist/gs/math/sin.gs.js +29 -0
  174. package/dist/gs/math/sin.gs.js.map +1 -0
  175. package/dist/gs/math/sincos.gs.d.ts +1 -0
  176. package/dist/gs/math/sincos.gs.js +11 -0
  177. package/dist/gs/math/sincos.gs.js.map +1 -0
  178. package/dist/gs/math/sinh.gs.d.ts +4 -0
  179. package/dist/gs/math/sinh.gs.js +27 -0
  180. package/dist/gs/math/sinh.gs.js.map +1 -0
  181. package/dist/gs/math/sqrt.gs.d.ts +2 -0
  182. package/dist/gs/math/sqrt.gs.js +15 -0
  183. package/dist/gs/math/sqrt.gs.js.map +1 -0
  184. package/dist/gs/math/tan.gs.d.ts +2 -0
  185. package/dist/gs/math/tan.gs.js +17 -0
  186. package/dist/gs/math/tan.gs.js.map +1 -0
  187. package/dist/gs/math/tanh.gs.d.ts +2 -0
  188. package/dist/gs/math/tanh.gs.js +17 -0
  189. package/dist/gs/math/tanh.gs.js.map +1 -0
  190. package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
  191. package/dist/gs/math/trig_reduce.gs.js +62 -0
  192. package/dist/gs/math/trig_reduce.gs.js.map +1 -0
  193. package/dist/gs/math/unsafe.gs.d.ts +4 -0
  194. package/dist/gs/math/unsafe.gs.js +47 -0
  195. package/dist/gs/math/unsafe.gs.js.map +1 -0
  196. package/dist/gs/slices/slices.d.ts +6 -0
  197. package/dist/gs/slices/slices.js +8 -0
  198. package/dist/gs/slices/slices.js.map +1 -1
  199. package/dist/gs/strconv/atob.gs.d.ts +4 -0
  200. package/dist/gs/strconv/atob.gs.js +42 -0
  201. package/dist/gs/strconv/atob.gs.js.map +1 -0
  202. package/dist/gs/strconv/atof.gs.d.ts +2 -0
  203. package/dist/gs/strconv/atof.gs.js +51 -0
  204. package/dist/gs/strconv/atof.gs.js.map +1 -0
  205. package/dist/gs/strconv/atoi.gs.d.ts +33 -0
  206. package/dist/gs/strconv/atoi.gs.js +200 -0
  207. package/dist/gs/strconv/atoi.gs.js.map +1 -0
  208. package/dist/gs/strconv/doc.gs.d.ts +1 -0
  209. package/dist/gs/strconv/doc.gs.js +2 -0
  210. package/dist/gs/strconv/doc.gs.js.map +1 -0
  211. package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
  212. package/dist/gs/strconv/ftoa.gs.js +58 -0
  213. package/dist/gs/strconv/ftoa.gs.js.map +1 -0
  214. package/dist/gs/strconv/index.d.ts +6 -0
  215. package/dist/gs/strconv/index.js +7 -0
  216. package/dist/gs/strconv/index.js.map +1 -0
  217. package/dist/gs/strconv/itoa.gs.d.ts +6 -0
  218. package/dist/gs/strconv/itoa.gs.js +37 -0
  219. package/dist/gs/strconv/itoa.gs.js.map +1 -0
  220. package/dist/gs/strconv/quote.gs.d.ts +19 -0
  221. package/dist/gs/strconv/quote.gs.js +217 -0
  222. package/dist/gs/strconv/quote.gs.js.map +1 -0
  223. package/dist/gs/strings/index.d.ts +3 -0
  224. package/dist/gs/strings/index.js +4 -0
  225. package/dist/gs/strings/index.js.map +1 -1
  226. package/dist/gs/strings/replace.d.ts +0 -74
  227. package/dist/gs/strings/replace.js +6 -204
  228. package/dist/gs/strings/replace.js.map +1 -1
  229. package/dist/gs/strings/search.d.ts +0 -1
  230. package/dist/gs/strings/search.js +0 -21
  231. package/dist/gs/strings/search.js.map +1 -1
  232. package/gs/builtin/builtin.ts +40 -0
  233. package/gs/builtin/map.ts +12 -7
  234. package/gs/builtin/slice.ts +174 -34
  235. package/gs/github.com/pkg/errors/errors.ts +307 -0
  236. package/gs/github.com/pkg/errors/go113.ts +39 -0
  237. package/gs/github.com/pkg/errors/index.ts +3 -0
  238. package/gs/github.com/pkg/errors/stack.ts +127 -0
  239. package/gs/maps/index.ts +2 -0
  240. package/gs/maps/iter.ts +67 -0
  241. package/gs/maps/maps.ts +89 -0
  242. package/gs/math/TODO.md +156 -0
  243. package/gs/math/abs.gs.test.ts +29 -0
  244. package/gs/math/abs.gs.ts +13 -0
  245. package/gs/math/acosh.gs.test.ts +39 -0
  246. package/gs/math/acosh.gs.ts +21 -0
  247. package/gs/math/asin.gs.test.ts +66 -0
  248. package/gs/math/asin.gs.ts +27 -0
  249. package/gs/math/asinh.gs.test.ts +37 -0
  250. package/gs/math/asinh.gs.ts +21 -0
  251. package/gs/math/atan.gs.test.ts +49 -0
  252. package/gs/math/atan.gs.ts +27 -0
  253. package/gs/math/atan2.gs.test.ts +55 -0
  254. package/gs/math/atan2.gs.ts +37 -0
  255. package/gs/math/atanh.gs.test.ts +47 -0
  256. package/gs/math/atanh.gs.ts +21 -0
  257. package/gs/math/bits.gs.test.ts +88 -0
  258. package/gs/math/bits.gs.ts +61 -0
  259. package/gs/math/cbrt.gs.test.ts +57 -0
  260. package/gs/math/cbrt.gs.ts +20 -0
  261. package/gs/math/const.gs.test.ts +54 -0
  262. package/gs/math/const.gs.ts +93 -0
  263. package/gs/math/copysign.gs.test.ts +44 -0
  264. package/gs/math/copysign.gs.ts +27 -0
  265. package/gs/math/dim.gs.test.ts +102 -0
  266. package/gs/math/dim.gs.ts +84 -0
  267. package/gs/math/erf.gs.test.ts +92 -0
  268. package/gs/math/erf.gs.ts +409 -0
  269. package/gs/math/erfinv.gs.test.ts +104 -0
  270. package/gs/math/erfinv.gs.ts +169 -0
  271. package/gs/math/exp.gs.test.ts +82 -0
  272. package/gs/math/exp.gs.ts +39 -0
  273. package/gs/math/expm1.gs.test.ts +48 -0
  274. package/gs/math/expm1.gs.ts +23 -0
  275. package/gs/math/floor.gs.test.ts +146 -0
  276. package/gs/math/floor.gs.ts +88 -0
  277. package/gs/math/fma.gs.test.ts +83 -0
  278. package/gs/math/fma.gs.ts +7 -0
  279. package/gs/math/frexp.gs.test.ts +146 -0
  280. package/gs/math/frexp.gs.ts +37 -0
  281. package/gs/math/gamma.gs.test.ts +66 -0
  282. package/gs/math/gamma.gs.ts +158 -0
  283. package/gs/math/hypot.gs.test.ts +73 -0
  284. package/gs/math/hypot.gs.ts +23 -0
  285. package/gs/math/index.ts +44 -0
  286. package/gs/math/j0.gs.test.ts +74 -0
  287. package/gs/math/j0.gs.ts +257 -0
  288. package/gs/math/j1.gs.test.ts +81 -0
  289. package/gs/math/j1.gs.ts +231 -0
  290. package/gs/math/jn.gs.test.ts +133 -0
  291. package/gs/math/jn.gs.ts +447 -0
  292. package/gs/math/ldexp.gs.test.ts +128 -0
  293. package/gs/math/ldexp.gs.ts +28 -0
  294. package/gs/math/lgamma.gs.test.ts +102 -0
  295. package/gs/math/lgamma.gs.ts +251 -0
  296. package/gs/math/log.gs.test.ts +40 -0
  297. package/gs/math/log.gs.ts +21 -0
  298. package/gs/math/log10.gs.test.ts +80 -0
  299. package/gs/math/log10.gs.ts +25 -0
  300. package/gs/math/log1p.gs.test.ts +55 -0
  301. package/gs/math/log1p.gs.ts +24 -0
  302. package/gs/math/logb.gs.test.ts +87 -0
  303. package/gs/math/logb.gs.ts +54 -0
  304. package/gs/math/mod.gs.test.ts +64 -0
  305. package/gs/math/mod.gs.ts +36 -0
  306. package/gs/math/modf.gs.test.ts +80 -0
  307. package/gs/math/modf.gs.ts +32 -0
  308. package/gs/math/nextafter.gs.test.ts +107 -0
  309. package/gs/math/nextafter.gs.ts +71 -0
  310. package/gs/math/pow.gs.test.ts +103 -0
  311. package/gs/math/pow.gs.ts +55 -0
  312. package/gs/math/pow10.gs.test.ts +58 -0
  313. package/gs/math/pow10.gs.ts +19 -0
  314. package/gs/math/remainder.gs.test.ts +70 -0
  315. package/gs/math/remainder.gs.ts +33 -0
  316. package/gs/math/signbit.gs.test.ts +33 -0
  317. package/gs/math/signbit.gs.ts +8 -0
  318. package/gs/math/sin.gs.test.ts +83 -0
  319. package/gs/math/sin.gs.ts +38 -0
  320. package/gs/math/sincos.gs.test.ts +91 -0
  321. package/gs/math/sincos.gs.ts +15 -0
  322. package/gs/math/sinh.gs.test.ts +66 -0
  323. package/gs/math/sinh.gs.ts +34 -0
  324. package/gs/math/sqrt.gs.test.ts +49 -0
  325. package/gs/math/sqrt.gs.ts +20 -0
  326. package/gs/math/tan.gs.test.ts +50 -0
  327. package/gs/math/tan.gs.ts +23 -0
  328. package/gs/math/tanh.gs.test.ts +52 -0
  329. package/gs/math/tanh.gs.ts +23 -0
  330. package/gs/math/trig_reduce.gs.ts +66 -0
  331. package/gs/math/unsafe.gs.ts +52 -0
  332. package/gs/slices/slices.ts +9 -0
  333. package/gs/strconv/atob.gs.ts +45 -0
  334. package/gs/strconv/atof.gs.ts +60 -0
  335. package/gs/strconv/atoi.gs.ts +243 -0
  336. package/gs/strconv/doc.gs.ts +2 -0
  337. package/gs/strconv/ftoa.gs.ts +66 -0
  338. package/gs/strconv/index.ts +6 -0
  339. package/gs/strconv/itoa.gs.ts +41 -0
  340. package/gs/strconv/quote.gs.ts +245 -0
  341. package/gs/strings/index.ts +4 -0
  342. package/gs/strings/replace.ts +9 -237
  343. package/gs/strings/search.ts +0 -28
  344. package/package.json +1 -1
  345. package/gs/stringslite/godoc.txt +0 -17
  346. package/gs/stringslite/index.ts +0 -1
  347. package/gs/stringslite/strings.ts +0 -82
@@ -0,0 +1,228 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { Abs } from "./abs.gs.js";
3
+ import { Inf, IsInf, IsNaN, NaN } from "./bits.gs.js";
4
+ import { Log } from "./log.gs.js";
5
+ import { Cos } from "./sin.gs.js";
6
+ import { Sincos } from "./sincos.gs.js";
7
+ import { Sqrt } from "./sqrt.gs.js";
8
+ // J0 returns the order-zero Bessel function of the first kind.
9
+ //
10
+ // Special cases are:
11
+ //
12
+ // J0(±Inf) = 0
13
+ // J0(0) = 1
14
+ // J0(NaN) = NaN
15
+ export function J0(x) {
16
+ // Constants
17
+ const TwoM27 = 1.0 / (1 << 27); // 2**-27
18
+ const TwoM13 = 1.0 / (1 << 13); // 2**-13
19
+ const Two129 = Math.pow(2, 129); // 2**129
20
+ // R0/S0 coefficients on [0, 2]
21
+ const R02 = 1.56249999999999947958e-02;
22
+ const R03 = -1.89979294238854721751e-04;
23
+ const R04 = 1.82954049532700665670e-06;
24
+ const R05 = -4.61832688532103189199e-09;
25
+ const S01 = 1.56191029464890010492e-02;
26
+ const S02 = 1.16926784663337450260e-04;
27
+ const S03 = 5.13546550207318111446e-07;
28
+ const S04 = 1.16614003333790000205e-09;
29
+ // special cases
30
+ if (IsNaN(x)) {
31
+ return x;
32
+ }
33
+ if (IsInf(x, 0)) {
34
+ return 0;
35
+ }
36
+ if (x == 0) {
37
+ return 1;
38
+ }
39
+ x = Abs(x);
40
+ // |x| >= 2.0
41
+ if (x >= 2) {
42
+ const [s, c] = Sincos(x);
43
+ let ss = s - c;
44
+ let cc = s + c;
45
+ // make sure x+x does not overflow
46
+ if (x < 1.79769e+308 / 2) {
47
+ const z = -Cos(x + x);
48
+ if (s * c < 0) {
49
+ cc = z / ss;
50
+ }
51
+ else {
52
+ ss = z / cc;
53
+ }
54
+ }
55
+ let z;
56
+ // |x| > ~6.8056e+38
57
+ if (x > 680564733841876926926749214863536422912) {
58
+ z = (1 / 1.77245) * cc / Sqrt(x);
59
+ }
60
+ else {
61
+ const u = pzero(x);
62
+ const v = qzero(x);
63
+ z = (1 / 1.77245) * (u * cc - v * ss) / Sqrt(x);
64
+ }
65
+ return z;
66
+ }
67
+ // |x| < ~1.2207e-4
68
+ if (x < 0.00012207) {
69
+ // |x| < ~7.4506e-9
70
+ if (x < 7.45058e-09) {
71
+ return 1;
72
+ }
73
+ return 1 - 0.25 * x * x;
74
+ }
75
+ const z = x * x;
76
+ const r = z * (R02 + z * (R03 + z * (R04 + z * R05)));
77
+ const s = 1 + z * (S01 + z * (S02 + z * (S03 + z * S04)));
78
+ // |x| < 1.00
79
+ if (x < 1) {
80
+ return 1 + z * (-0.25 + (r / s));
81
+ }
82
+ const u = 0.5 * x;
83
+ return (1 + u) * (1 - u) + z * (r / s);
84
+ }
85
+ // Y0 returns the order-zero Bessel function of the second kind.
86
+ //
87
+ // Special cases are:
88
+ //
89
+ // Y0(+Inf) = 0
90
+ // Y0(0) = -Inf
91
+ // Y0(x < 0) = NaN
92
+ // Y0(NaN) = NaN
93
+ export function Y0(x) {
94
+ // Constants
95
+ const TwoM27 = 1.0 / (1 << 27); // 2**-27
96
+ const Two129 = Math.pow(2, 129); // 2**129
97
+ // U coefficients
98
+ const U00 = -7.38042951086872317523e-02;
99
+ const U01 = 1.76666452509181115538e-01;
100
+ const U02 = -1.38185671945596898896e-02;
101
+ const U03 = 3.47453432093683650238e-04;
102
+ const U04 = -3.81407053724364161125e-06;
103
+ const U05 = 1.95590137035022920206e-08;
104
+ const U06 = -3.98205194132103398453e-11;
105
+ // V coefficients
106
+ const V01 = 1.27304834834123699328e-02;
107
+ const V02 = 7.60068627350353253702e-05;
108
+ const V03 = 2.59150851840457805467e-07;
109
+ const V04 = 4.41110311332675467403e-10;
110
+ // special cases
111
+ if (x < 0 || IsNaN(x)) {
112
+ return NaN();
113
+ }
114
+ if (IsInf(x, 1)) {
115
+ return 0;
116
+ }
117
+ if (x == 0) {
118
+ return Inf(-1);
119
+ }
120
+ // |x| >= 2.0
121
+ if (x >= 2) {
122
+ const [s, c] = Sincos(x);
123
+ let ss = s - c;
124
+ let cc = s + c;
125
+ // make sure x+x does not overflow
126
+ if (x < 1.79769e+308 / 2) {
127
+ const z = -Cos(x + x);
128
+ if (s * c < 0) {
129
+ cc = z / ss;
130
+ }
131
+ else {
132
+ ss = z / cc;
133
+ }
134
+ }
135
+ let z;
136
+ // |x| > ~6.8056e+38
137
+ if (x > 680564733841876926926749214863536422912) {
138
+ z = (1 / 1.77245) * ss / Sqrt(x);
139
+ }
140
+ else {
141
+ const u = pzero(x);
142
+ const v = qzero(x);
143
+ z = (1 / 1.77245) * (u * ss + v * cc) / Sqrt(x);
144
+ }
145
+ return z;
146
+ }
147
+ // |x| < ~7.4506e-9
148
+ if (x <= 7.45058e-09) {
149
+ return U00 + (2 / Math.PI) * Log(x);
150
+ }
151
+ const z = x * x;
152
+ const u = U00 + z * (U01 + z * (U02 + z * (U03 + z * (U04 + z * (U05 + z * U06)))));
153
+ const v = 1 + z * (V01 + z * (V02 + z * (V03 + z * V04)));
154
+ return u / v + (2 / Math.PI) * J0(x) * Log(x);
155
+ }
156
+ const p0R8 = $.varRef($.arrayToSlice([0.00000000000000000000e+00, -7.03124999999900357484e-02, -8.08167041275349795626e+00, -2.57063105679704847262e+02, -2.48521641009428822144e+03, -5.25304380490729545272e+03]));
157
+ const p0S8 = $.varRef($.arrayToSlice([1.16534364619668181717e+02, 3.83374475364121826715e+03, 4.05978572648472545552e+04, 1.16752972564375915681e+05, 4.76277284146730962675e+04]));
158
+ const p0R5 = $.varRef($.arrayToSlice([-1.14125464691894502584e-11, -7.03124940873599280078e-02, -4.15961064470587782438e+00, -6.76747652265167261021e+01, -3.31231299649172967747e+02, -3.46433388365604912451e+02]));
159
+ const p0S5 = $.varRef($.arrayToSlice([6.07539382692300335975e+01, 1.05125230595704579173e+03, 5.97897094333855784498e+03, 9.62544514357774460223e+03, 2.40605815922939109441e+03]));
160
+ const p0R3 = $.varRef($.arrayToSlice([-2.54704601771951915620e-09, -7.03119616381481654654e-02, -2.40903221549529611423e+00, -2.19659774734883086467e+01, -5.80791704701737572236e+01, -3.14479470594888503854e+01]));
161
+ const p0S3 = $.varRef($.arrayToSlice([3.58560338055209726349e+01, 3.61513983050303863820e+02, 1.19360783792111533330e+03, 1.12799679856907414432e+03, 1.73580930813335754692e+02]));
162
+ const p0R2 = $.varRef($.arrayToSlice([-8.87534333032526411254e-08, -7.03030995483624743247e-02, -1.45073846780952986357e+00, -7.63569613823527770791e+00, -1.11931668860356747786e+01, -3.23364579351335335033e+00]));
163
+ const p0S2 = $.varRef($.arrayToSlice([2.22202997532088808441e+01, 1.36206794218215208048e+02, 2.70470278658083486789e+02, 1.53875394208320329881e+02, 1.46576176948256193810e+01]));
164
+ export function pzero(x) {
165
+ let p;
166
+ let q;
167
+ if (x >= 8) {
168
+ p = p0R8;
169
+ q = p0S8;
170
+ }
171
+ else if (x >= 4.5454) {
172
+ p = p0R5;
173
+ q = p0S5;
174
+ }
175
+ else if (x >= 2.8571) {
176
+ p = p0R3;
177
+ q = p0S3;
178
+ }
179
+ else if (x >= 2) {
180
+ p = p0R2;
181
+ q = p0S2;
182
+ }
183
+ else {
184
+ // This should not happen based on the calling code, but we need to handle it
185
+ throw new Error("pzero: x must be >= 2");
186
+ }
187
+ const z = 1 / (x * x);
188
+ const r = p.value[0] + z * (p.value[1] + z * (p.value[2] + z * (p.value[3] + z * (p.value[4] + z * p.value[5]))));
189
+ const s = 1 + z * (q.value[0] + z * (q.value[1] + z * (q.value[2] + z * (q.value[3] + z * q.value[4]))));
190
+ return 1 + r / s;
191
+ }
192
+ const q0R8 = $.varRef($.arrayToSlice([0.00000000000000000000e+00, 7.32421874999935051953e-02, 1.17682064682252693899e+01, 5.57673380256401856059e+02, 8.85919720756468632317e+03, 3.70146267776887834771e+04]));
193
+ const q0S8 = $.varRef($.arrayToSlice([1.63776026895689824414e+02, 8.09834494656449805916e+03, 1.42538291419120476348e+05, 8.03309257119514397345e+05, 8.40501579819060512818e+05, -3.43899293537866615225e+05]));
194
+ const q0R5 = $.varRef($.arrayToSlice([1.84085963594515531381e-11, 7.32421766612684765896e-02, 5.83563508962056953777e+00, 1.35111577286449829671e+02, 1.02724376596164097464e+03, 1.98997785864605384631e+03]));
195
+ const q0S5 = $.varRef($.arrayToSlice([8.27766102236537761883e+01, 2.07781416421392987104e+03, 1.88472887785718085070e+04, 5.67511122894947329769e+04, 3.59767538425114471465e+04, -5.35434275601944773371e+03]));
196
+ const q0R3 = $.varRef($.arrayToSlice([4.37741014089738620906e-09, 7.32411180042911447163e-02, 3.34423137516170720929e+00, 4.26218440745412650017e+01, 1.70808091340565596283e+02, 1.66733948696651168575e+02]));
197
+ const q0S3 = $.varRef($.arrayToSlice([4.87588729724587182091e+01, 7.09689221056606015736e+02, 3.70414822620111362994e+03, 6.46042516752568917582e+03, 2.51633368920368957333e+03, -1.49247451836156386662e+02]));
198
+ const q0R2 = $.varRef($.arrayToSlice([1.50444444886983272379e-07, 7.32234265963079278272e-02, 1.99819174093815998816e+00, 1.44956029347885735348e+01, 3.16662317504781540833e+01, 1.62527075710929267416e+01]));
199
+ const q0S2 = $.varRef($.arrayToSlice([3.03655848355219184498e+01, 2.69348118608049844624e+02, 8.44783757595320139444e+02, 8.82935845112488550512e+02, 2.12666388511798828631e+02, -5.31095493882666946917e+00]));
200
+ export function qzero(x) {
201
+ let p;
202
+ let q;
203
+ if (x >= 8) {
204
+ p = q0R8;
205
+ q = q0S8;
206
+ }
207
+ else if (x >= 4.5454) {
208
+ p = q0R5;
209
+ q = q0S5;
210
+ }
211
+ else if (x >= 2.8571) {
212
+ p = q0R3;
213
+ q = q0S3;
214
+ }
215
+ else if (x >= 2) {
216
+ p = q0R2;
217
+ q = q0S2;
218
+ }
219
+ else {
220
+ // This should not happen based on the calling code, but we need to handle it
221
+ throw new Error("qzero: x must be >= 2");
222
+ }
223
+ const z = 1 / (x * x);
224
+ const r = p.value[0] + z * (p.value[1] + z * (p.value[2] + z * (p.value[3] + z * (p.value[4] + z * p.value[5]))));
225
+ const s = 1 + z * (q.value[0] + z * (q.value[1] + z * (q.value[2] + z * (q.value[3] + z * (q.value[4] + z * q.value[5])))));
226
+ return (-0.125 + r / s) / x;
227
+ }
228
+ //# sourceMappingURL=j0.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"j0.gs.js","sourceRoot":"","sources":["../../../gs/math/j0.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,+DAA+D;AAC/D,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,YAAY;AACZ,gBAAgB;AAChB,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,YAAY;IACZ,MAAM,MAAM,GAAW,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;IACjD,MAAM,MAAM,GAAW,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;IACjD,MAAM,MAAM,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;IAElD,+BAA+B;IAC/B,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAChD,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAChD,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAE/C,gBAAgB;IAChB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACV,CAAC;IAED,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAEX,aAAa;IACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEf,kCAAkC;QAClC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAS,CAAC;QACd,oBAAoB;QACpB,IAAI,CAAC,GAAG,uCAAuC,EAAE,CAAC;YACjD,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;QACpB,mBAAmB;QACnB,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC;QACV,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1D,aAAa;IACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,gEAAgE;AAChE,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,YAAY;IACZ,MAAM,MAAM,GAAW,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;IACjD,MAAM,MAAM,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;IAElD,iBAAiB;IACjB,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAChD,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAChD,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAChD,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,CAAC,0BAA0B,CAAC;IAEhD,iBAAiB;IACjB,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAC/C,MAAM,GAAG,GAAW,0BAA0B,CAAC;IAE/C,gBAAgB;IAChB,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,aAAa;IACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEf,kCAAkC;QAClC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAS,CAAC;QACd,oBAAoB;QACpB,IAAI,CAAC,GAAG,uCAAuC,EAAE,CAAC;YACjD,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;QACtB,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAExP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvN,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEzP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvN,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEzP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvN,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEzP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvN,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,IAAI,CAA4B,CAAC;IACjC,IAAI,CAA4B,CAAC;IAEjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,CAAC;QACP,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEnP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEpP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEnP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEpP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEnP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEpP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEnP,MAAM,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEpP,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,IAAI,CAA4B,CAAC;IACjC,IAAI,CAA4B,CAAC;IAEjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,CAAC;QACP,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClI,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function J1(x: number): number;
2
+ export declare function Y1(x: number): number;
3
+ export declare function pone(x: number): number;
4
+ export declare function qone(x: number): number;
@@ -0,0 +1,211 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { Inf, IsInf, IsNaN, NaN } from "./bits.gs.js";
3
+ import { Log } from "./log.gs.js";
4
+ import { Cos } from "./sin.gs.js";
5
+ import { Sincos } from "./sincos.gs.js";
6
+ import { Sqrt } from "./sqrt.gs.js";
7
+ // J1 returns the order-one Bessel function of the first kind.
8
+ //
9
+ // Special cases are:
10
+ //
11
+ // J1(±Inf) = 0
12
+ // J1(NaN) = NaN
13
+ export function J1(x) {
14
+ // special cases
15
+ switch (true) {
16
+ case IsNaN(x):
17
+ return x;
18
+ case IsInf(x, 0) || x == 0:
19
+ return 0;
20
+ }
21
+ let sign = false;
22
+ if (x < 0) {
23
+ x = -x;
24
+ sign = true;
25
+ }
26
+ // j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
27
+ // y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
28
+ if (x >= 2) {
29
+ let [s, c] = Sincos(x);
30
+ let ss = -s - c;
31
+ let cc = s - c;
32
+ // make sure x+x does not overflow
33
+ if (x < 1.79769e+308 / 2) {
34
+ let z = Cos(x + x);
35
+ if (s * c > 0) {
36
+ cc = z / ss;
37
+ }
38
+ else {
39
+ ss = z / cc;
40
+ }
41
+ }
42
+ // j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
43
+ // y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
44
+ let z = 0;
45
+ if (x > 680564733841876926926749214863536422912) {
46
+ z = (1 / 1.77245) * cc / Sqrt(x);
47
+ }
48
+ else {
49
+ let u = pone(x);
50
+ let v = qone(x);
51
+ z = (1 / 1.77245) * (u * cc - v * ss) / Sqrt(x);
52
+ }
53
+ if (sign) {
54
+ return -z;
55
+ }
56
+ return z;
57
+ }
58
+ // |x|<2**-27
59
+ // inexact if x!=0 necessary
60
+ if (x < 7.45058e-09) {
61
+ // |x|<2**-27
62
+ return 0.5 * x;
63
+ }
64
+ let z = x * x;
65
+ let r = z * (-0.0625 + z * (0.00140706 + z * (-1.59956e-05 + z * 4.96728e-08)));
66
+ let s = 1.0 + z * (0.0191538 + z * (0.000185947 + z * (1.17718e-06 + z * (5.04636e-09 + z * 1.23542e-11))));
67
+ r *= x;
68
+ z = 0.5 * x + r / s;
69
+ if (sign) {
70
+ return -z;
71
+ }
72
+ return z;
73
+ }
74
+ // Y1 returns the order-one Bessel function of the second kind.
75
+ //
76
+ // Special cases are:
77
+ //
78
+ // Y1(+Inf) = 0
79
+ // Y1(0) = -Inf
80
+ // Y1(x < 0) = NaN
81
+ // Y1(NaN) = NaN
82
+ export function Y1(x) {
83
+ // special cases
84
+ switch (true) {
85
+ case x < 0 || IsNaN(x):
86
+ return NaN();
87
+ case IsInf(x, 1):
88
+ return 0;
89
+ case x == 0:
90
+ return Inf(-1);
91
+ }
92
+ // y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
93
+ // where x0 = x-3pi/4
94
+ // Better formula:
95
+ // cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
96
+ // = 1/sqrt(2) * (sin(x) - cos(x))
97
+ // sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
98
+ // = -1/sqrt(2) * (cos(x) + sin(x))
99
+ // To avoid cancellation, use
100
+ // sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
101
+ // to compute the worse one.
102
+ if (x >= 2) {
103
+ let [s, c] = Sincos(x);
104
+ let ss = -s - c;
105
+ let cc = s - c;
106
+ // make sure x+x does not overflow
107
+ if (x < 1.79769e+308 / 2) {
108
+ let z = Cos(x + x);
109
+ if (s * c > 0) {
110
+ cc = z / ss;
111
+ }
112
+ else {
113
+ ss = z / cc;
114
+ }
115
+ }
116
+ let z = 0;
117
+ if (x > 680564733841876926926749214863536422912) {
118
+ z = (1 / 1.77245) * ss / Sqrt(x);
119
+ }
120
+ else {
121
+ let u = pone(x);
122
+ let v = qone(x);
123
+ z = (1 / 1.77245) * (u * ss + v * cc) / Sqrt(x);
124
+ }
125
+ return z;
126
+ }
127
+ // x < 2**-54
128
+ if (x <= 5.55112e-17) {
129
+ // x < 2**-54
130
+ return -(2 / 3.14159) / x;
131
+ }
132
+ let z = x * x;
133
+ let u = -0.196057 + z * (0.0504439 + z * (-0.00191257 + z * (2.35253e-05 + z * -9.19099e-08)));
134
+ let v = 1 + z * (0.0199167 + z * (0.000202553 + z * (1.35609e-06 + z * (6.22741e-09 + z * 1.66559e-11))));
135
+ return x * (u / v) + (2 / 3.14159) * (J1(x) * Log(x) - 1 / x);
136
+ }
137
+ let p1R8 = $.varRef($.arrayToSlice([0.00000000000000000000e+00, 1.17187499999988647970e-01, 1.32394806593073575129e+01, 4.12051854307378562225e+02, 3.87474538913960532227e+03, 7.91447954031891731574e+03]));
138
+ let p1S8 = $.varRef($.arrayToSlice([1.14207370375678408436e+02, 3.65093083420853463394e+03, 3.69562060269033463555e+04, 9.76027935934950801311e+04, 3.08042720627888811578e+04]));
139
+ let p1R5 = $.varRef($.arrayToSlice([1.31990519556243522749e-11, 1.17187493190614097638e-01, 6.80275127868432871736e+00, 1.08308182990189109773e+02, 5.17636139533199752805e+02, 5.28715201363337541807e+02]));
140
+ let p1S5 = $.varRef($.arrayToSlice([5.92805987221131331921e+01, 9.91401418733614377743e+02, 5.35326695291487976647e+03, 7.84469031749551231769e+03, 1.50404688810361062679e+03]));
141
+ let p1R3 = $.varRef($.arrayToSlice([3.02503916137373618024e-09, 1.17186865567253592491e-01, 3.93297750033315640650e+00, 3.51194035591636932736e+01, 9.10550110750781271918e+01, 4.85590685197364919645e+01]));
142
+ let p1S3 = $.varRef($.arrayToSlice([3.47913095001251519989e+01, 3.36762458747825746741e+02, 1.04687139975775130551e+03, 8.90811346398256432622e+02, 1.03787932439639277504e+02]));
143
+ let p1R2 = $.varRef($.arrayToSlice([1.07710830106873743082e-07, 1.17176219462683348094e-01, 2.36851496667608785174e+00, 1.22426109148261232917e+01, 1.76939711271687727390e+01, 5.07352312588818499250e+00]));
144
+ let p1S2 = $.varRef($.arrayToSlice([2.14364859363821409488e+01, 1.25290227168402751090e+02, 2.32276469057162813669e+02, 1.17679373287147100768e+02, 8.36463893371618283368e+00]));
145
+ export function pone(x) {
146
+ let p;
147
+ let q;
148
+ if (x >= 8) {
149
+ p = p1R8;
150
+ q = p1S8;
151
+ }
152
+ else if (x >= 4.5454) {
153
+ p = p1R5;
154
+ q = p1S5;
155
+ }
156
+ else if (x >= 2.8571) {
157
+ p = p1R3;
158
+ q = p1S3;
159
+ }
160
+ else if (x >= 2) {
161
+ p = p1R2;
162
+ q = p1S2;
163
+ }
164
+ else {
165
+ // Default case to ensure p and q are always assigned
166
+ p = p1R2;
167
+ q = p1S2;
168
+ }
169
+ let z = 1 / (x * x);
170
+ let r = p.value[0] + z * (p.value[1] + z * (p.value[2] + z * (p.value[3] + z * (p.value[4] + z * p.value[5]))));
171
+ let s = 1.0 + z * (q.value[0] + z * (q.value[1] + z * (q.value[2] + z * (q.value[3] + z * q.value[4]))));
172
+ return 1 + r / s;
173
+ }
174
+ let q1R8 = $.varRef($.arrayToSlice([0.00000000000000000000e+00, -1.02539062499992714161e-01, -1.62717534544589987888e+01, -7.59601722513950107896e+02, -1.18498066702429587167e+04, -4.84385124285750353010e+04]));
175
+ let q1S8 = $.varRef($.arrayToSlice([1.61395369700722909556e+02, 7.82538599923348465381e+03, 1.33875336287249578163e+05, 7.19657723683240939863e+05, 6.66601232617776375264e+05, -2.94490264303834643215e+05]));
176
+ let q1R5 = $.varRef($.arrayToSlice([-2.08979931141764104297e-11, -1.02539050241375426231e-01, -8.05644828123936029840e+00, -1.83669607474888380239e+02, -1.37319376065508163265e+03, -2.61244440453215656817e+03]));
177
+ let q1S5 = $.varRef($.arrayToSlice([8.12765501384335777857e+01, 1.99179873460485964642e+03, 1.74684851924908907677e+04, 4.98514270910352279316e+04, 2.79480751638918118260e+04, -4.71918354795128470869e+03]));
178
+ let q1R3 = $.varRef($.arrayToSlice([-5.07831226461766561369e-09, -1.02537829820837089745e-01, -4.61011581139473403113e+00, -5.78472216562783643212e+01, -2.28244540737631695038e+02, -2.19210128478909325622e+02]));
179
+ let q1S3 = $.varRef($.arrayToSlice([4.76651550323729509273e+01, 6.73865112676699709482e+02, 3.38015286679526343505e+03, 5.54772909720722782367e+03, 1.90311919338810798763e+03, -1.35201191444307340817e+02]));
180
+ let q1R2 = $.varRef($.arrayToSlice([-1.78381727510958865572e-07, -1.02517042607985553460e-01, -2.75220568278187460720e+00, -1.96636162643703720221e+01, -4.23253133372830490089e+01, -2.13719211703704061733e+01]));
181
+ let q1S2 = $.varRef($.arrayToSlice([2.95333629060523854548e+01, 2.52981549982190529136e+02, 7.57502834868645436472e+02, 7.39393205320467245656e+02, 1.55949003336666123687e+02, -4.95949898822628210127e+00]));
182
+ export function qone(x) {
183
+ let p;
184
+ let q;
185
+ if (x >= 8) {
186
+ p = q1R8;
187
+ q = q1S8;
188
+ }
189
+ else if (x >= 4.5454) {
190
+ p = q1R5;
191
+ q = q1S5;
192
+ }
193
+ else if (x >= 2.8571) {
194
+ p = q1R3;
195
+ q = q1S3;
196
+ }
197
+ else if (x >= 2) {
198
+ p = q1R2;
199
+ q = q1S2;
200
+ }
201
+ else {
202
+ // Default case to ensure p and q are always assigned
203
+ p = q1R2;
204
+ q = q1S2;
205
+ }
206
+ let z = 1 / (x * x);
207
+ let r = p.value[0] + z * (p.value[1] + z * (p.value[2] + z * (p.value[3] + z * (p.value[4] + z * p.value[5]))));
208
+ let s = 1 + z * (q.value[0] + z * (q.value[1] + z * (q.value[2] + z * (q.value[3] + z * (q.value[4] + z * q.value[5])))));
209
+ return (0.375 + r / s) / x;
210
+ }
211
+ //# sourceMappingURL=j1.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"j1.gs.js","sourceRoot":"","sources":["../../../gs/math/j1.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,8DAA8D;AAC9D,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,gBAAgB;AAChB,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,gBAAgB;IAChB,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC;QACV,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACX,CAAC,GAAG,CAAC,CAAC,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACb,CAAC;IAED,yDAAyD;IACzD,yDAAyD;IACzD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEf,kCAAkC;QAClC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,yDAAyD;QACzD,yDAAyD;QAEzD,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAI,CAAC,GAAG,uCAAuC,EAAE,CAAC;YACjD,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IACD,aAAa;IACb,4BAA4B;IAC5B,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;QACrB,aAAa;QACb,OAAO,GAAG,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC,IAAI,CAAC,CAAC;IACP,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,+DAA+D;AAC/D,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,eAAe;AACf,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,gBAAgB;IAChB,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,CAAC,CAAC;QACV,KAAK,CAAC,IAAI,CAAC;YACV,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,uDAAuD;IACvD,qBAAqB;IACrB,sBAAsB;IACtB,sDAAsD;IACtD,mDAAmD;IACnD,sDAAsD;IACtD,mDAAmD;IACnD,6BAA6B;IAC7B,qDAAqD;IACrD,4BAA4B;IAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEf,kCAAkC;QAClC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAI,CAAC,GAAG,uCAAuC,EAAE,CAAC;YACjD,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IACD,aAAa;IACb,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;QACtB,aAAa;QACb,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEjP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAErN,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEjP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAErN,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEjP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAErN,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEjP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAErN,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,IAAI,CAA4B,CAAC;IACjC,IAAI,CAA4B,CAAC;IAEjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,CAAC;QACP,qDAAqD;QACrD,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEtP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAEvP,IAAI,IAAI,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAS,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAElP,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,IAAI,CAA4B,CAAC;IACjC,IAAI,CAA4B,CAAC;IAEjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;SAAM,CAAC;QACP,qDAAqD;QACrD,CAAC,GAAG,IAAI,CAAC;QACT,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChI,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Jn(n: number, x: number): number;
2
+ export declare function Yn(n: number, x: number): number;