goscript 0.0.34 → 0.0.36

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 (358) hide show
  1. package/compiler/analysis.go +28 -20
  2. package/compiler/analysis_test.go +14 -0
  3. package/compiler/assignment.go +19 -7
  4. package/compiler/compiler.go +15 -99
  5. package/compiler/composite-lit.go +60 -17
  6. package/compiler/decl.go +1 -1
  7. package/compiler/expr-call.go +233 -35
  8. package/compiler/expr-selector.go +28 -2
  9. package/compiler/expr.go +13 -37
  10. package/compiler/lit.go +111 -2
  11. package/compiler/primitive.go +6 -6
  12. package/compiler/protobuf.go +0 -5
  13. package/compiler/sanitize.go +101 -0
  14. package/compiler/spec-struct.go +41 -8
  15. package/compiler/spec-value.go +29 -18
  16. package/compiler/stmt-assign.go +22 -1
  17. package/compiler/stmt.go +26 -9
  18. package/compiler/type.go +3 -3
  19. package/dist/gs/builtin/builtin.d.ts +3 -2
  20. package/dist/gs/builtin/builtin.js +2 -1
  21. package/dist/gs/builtin/builtin.js.map +1 -1
  22. package/dist/gs/builtin/map.js.map +1 -1
  23. package/dist/gs/builtin/slice.d.ts +7 -1
  24. package/dist/gs/builtin/slice.js +112 -22
  25. package/dist/gs/builtin/slice.js.map +1 -1
  26. package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
  27. package/dist/gs/github.com/pkg/errors/errors.js +232 -0
  28. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
  29. package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
  30. package/dist/gs/github.com/pkg/errors/go113.js +34 -0
  31. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
  32. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
  33. package/dist/gs/github.com/pkg/errors/index.js +4 -0
  34. package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
  35. package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
  36. package/dist/gs/github.com/pkg/errors/stack.js +111 -0
  37. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
  38. package/dist/gs/maps/index.d.ts +2 -2
  39. package/dist/gs/maps/index.js +2 -2
  40. package/dist/gs/maps/index.js.map +1 -1
  41. package/dist/gs/maps/iter.d.ts +7 -0
  42. package/dist/gs/maps/iter.js +57 -0
  43. package/dist/gs/maps/iter.js.map +1 -0
  44. package/dist/gs/maps/maps.d.ts +7 -0
  45. package/dist/gs/maps/maps.js +67 -0
  46. package/dist/gs/maps/maps.js.map +1 -0
  47. package/dist/gs/math/abs.gs.d.ts +1 -0
  48. package/dist/gs/math/abs.gs.js +10 -0
  49. package/dist/gs/math/abs.gs.js.map +1 -0
  50. package/dist/gs/math/acosh.gs.d.ts +2 -0
  51. package/dist/gs/math/acosh.gs.js +14 -0
  52. package/dist/gs/math/acosh.gs.js.map +1 -0
  53. package/dist/gs/math/asin.gs.d.ts +4 -0
  54. package/dist/gs/math/asin.gs.js +24 -0
  55. package/dist/gs/math/asin.gs.js.map +1 -0
  56. package/dist/gs/math/asinh.gs.d.ts +2 -0
  57. package/dist/gs/math/asinh.gs.js +14 -0
  58. package/dist/gs/math/asinh.gs.js.map +1 -0
  59. package/dist/gs/math/atan.gs.d.ts +4 -0
  60. package/dist/gs/math/atan.gs.js +22 -0
  61. package/dist/gs/math/atan.gs.js.map +1 -0
  62. package/dist/gs/math/atan2.gs.d.ts +2 -0
  63. package/dist/gs/math/atan2.gs.js +30 -0
  64. package/dist/gs/math/atan2.gs.js.map +1 -0
  65. package/dist/gs/math/atanh.gs.d.ts +2 -0
  66. package/dist/gs/math/atanh.gs.js +16 -0
  67. package/dist/gs/math/atanh.gs.js.map +1 -0
  68. package/dist/gs/math/bits.gs.d.ts +5 -0
  69. package/dist/gs/math/bits.gs.js +46 -0
  70. package/dist/gs/math/bits.gs.js.map +1 -0
  71. package/dist/gs/math/cbrt.gs.d.ts +2 -0
  72. package/dist/gs/math/cbrt.gs.js +14 -0
  73. package/dist/gs/math/cbrt.gs.js.map +1 -0
  74. package/dist/gs/math/const.gs.d.ts +30 -0
  75. package/dist/gs/math/const.gs.js +61 -0
  76. package/dist/gs/math/const.gs.js.map +1 -0
  77. package/dist/gs/math/copysign.gs.d.ts +1 -0
  78. package/dist/gs/math/copysign.gs.js +20 -0
  79. package/dist/gs/math/copysign.gs.js.map +1 -0
  80. package/dist/gs/math/dim.gs.d.ts +5 -0
  81. package/dist/gs/math/dim.gs.js +69 -0
  82. package/dist/gs/math/dim.gs.js.map +1 -0
  83. package/dist/gs/math/erf.gs.d.ts +4 -0
  84. package/dist/gs/math/erf.gs.js +336 -0
  85. package/dist/gs/math/erf.gs.js.map +1 -0
  86. package/dist/gs/math/erfinv.gs.d.ts +2 -0
  87. package/dist/gs/math/erfinv.gs.js +118 -0
  88. package/dist/gs/math/erfinv.gs.js.map +1 -0
  89. package/dist/gs/math/exp.gs.d.ts +5 -0
  90. package/dist/gs/math/exp.gs.js +30 -0
  91. package/dist/gs/math/exp.gs.js.map +1 -0
  92. package/dist/gs/math/expm1.gs.d.ts +2 -0
  93. package/dist/gs/math/expm1.gs.js +17 -0
  94. package/dist/gs/math/expm1.gs.js.map +1 -0
  95. package/dist/gs/math/floor.gs.d.ts +8 -0
  96. package/dist/gs/math/floor.gs.js +75 -0
  97. package/dist/gs/math/floor.gs.js.map +1 -0
  98. package/dist/gs/math/fma.gs.d.ts +1 -0
  99. package/dist/gs/math/fma.gs.js +8 -0
  100. package/dist/gs/math/fma.gs.js.map +1 -0
  101. package/dist/gs/math/frexp.gs.d.ts +2 -0
  102. package/dist/gs/math/frexp.gs.js +28 -0
  103. package/dist/gs/math/frexp.gs.js.map +1 -0
  104. package/dist/gs/math/gamma.gs.d.ts +3 -0
  105. package/dist/gs/math/gamma.gs.js +149 -0
  106. package/dist/gs/math/gamma.gs.js.map +1 -0
  107. package/dist/gs/math/hypot.gs.d.ts +2 -0
  108. package/dist/gs/math/hypot.gs.js +16 -0
  109. package/dist/gs/math/hypot.gs.js.map +1 -0
  110. package/dist/gs/math/index.d.ts +44 -0
  111. package/dist/gs/math/index.js +45 -0
  112. package/dist/gs/math/index.js.map +1 -0
  113. package/dist/gs/math/j0.gs.d.ts +4 -0
  114. package/dist/gs/math/j0.gs.js +228 -0
  115. package/dist/gs/math/j0.gs.js.map +1 -0
  116. package/dist/gs/math/j1.gs.d.ts +4 -0
  117. package/dist/gs/math/j1.gs.js +211 -0
  118. package/dist/gs/math/j1.gs.js.map +1 -0
  119. package/dist/gs/math/jn.gs.d.ts +2 -0
  120. package/dist/gs/math/jn.gs.js +412 -0
  121. package/dist/gs/math/jn.gs.js.map +1 -0
  122. package/dist/gs/math/ldexp.gs.d.ts +2 -0
  123. package/dist/gs/math/ldexp.gs.js +20 -0
  124. package/dist/gs/math/ldexp.gs.js.map +1 -0
  125. package/dist/gs/math/lgamma.gs.d.ts +2 -0
  126. package/dist/gs/math/lgamma.gs.js +243 -0
  127. package/dist/gs/math/lgamma.gs.js.map +1 -0
  128. package/dist/gs/math/log.gs.d.ts +2 -0
  129. package/dist/gs/math/log.gs.js +16 -0
  130. package/dist/gs/math/log.gs.js.map +1 -0
  131. package/dist/gs/math/log10.gs.d.ts +4 -0
  132. package/dist/gs/math/log10.gs.js +17 -0
  133. package/dist/gs/math/log10.gs.js.map +1 -0
  134. package/dist/gs/math/log1p.gs.d.ts +2 -0
  135. package/dist/gs/math/log1p.gs.js +17 -0
  136. package/dist/gs/math/log1p.gs.js.map +1 -0
  137. package/dist/gs/math/logb.gs.d.ts +3 -0
  138. package/dist/gs/math/logb.gs.js +43 -0
  139. package/dist/gs/math/logb.gs.js.map +1 -0
  140. package/dist/gs/math/mod.gs.d.ts +2 -0
  141. package/dist/gs/math/mod.gs.js +26 -0
  142. package/dist/gs/math/mod.gs.js.map +1 -0
  143. package/dist/gs/math/modf.gs.d.ts +2 -0
  144. package/dist/gs/math/modf.gs.js +24 -0
  145. package/dist/gs/math/modf.gs.js.map +1 -0
  146. package/dist/gs/math/nextafter.gs.d.ts +2 -0
  147. package/dist/gs/math/nextafter.gs.js +66 -0
  148. package/dist/gs/math/nextafter.gs.js.map +1 -0
  149. package/dist/gs/math/pow.gs.d.ts +3 -0
  150. package/dist/gs/math/pow.gs.js +40 -0
  151. package/dist/gs/math/pow.gs.js.map +1 -0
  152. package/dist/gs/math/pow10.gs.d.ts +1 -0
  153. package/dist/gs/math/pow10.gs.js +14 -0
  154. package/dist/gs/math/pow10.gs.js.map +1 -0
  155. package/dist/gs/math/remainder.gs.d.ts +2 -0
  156. package/dist/gs/math/remainder.gs.js +25 -0
  157. package/dist/gs/math/remainder.gs.js.map +1 -0
  158. package/dist/gs/math/signbit.gs.d.ts +1 -0
  159. package/dist/gs/math/signbit.gs.js +5 -0
  160. package/dist/gs/math/signbit.gs.js.map +1 -0
  161. package/dist/gs/math/sin.gs.d.ts +4 -0
  162. package/dist/gs/math/sin.gs.js +29 -0
  163. package/dist/gs/math/sin.gs.js.map +1 -0
  164. package/dist/gs/math/sincos.gs.d.ts +1 -0
  165. package/dist/gs/math/sincos.gs.js +11 -0
  166. package/dist/gs/math/sincos.gs.js.map +1 -0
  167. package/dist/gs/math/sinh.gs.d.ts +4 -0
  168. package/dist/gs/math/sinh.gs.js +27 -0
  169. package/dist/gs/math/sinh.gs.js.map +1 -0
  170. package/dist/gs/math/sqrt.gs.d.ts +2 -0
  171. package/dist/gs/math/sqrt.gs.js +15 -0
  172. package/dist/gs/math/sqrt.gs.js.map +1 -0
  173. package/dist/gs/math/tan.gs.d.ts +2 -0
  174. package/dist/gs/math/tan.gs.js +17 -0
  175. package/dist/gs/math/tan.gs.js.map +1 -0
  176. package/dist/gs/math/tanh.gs.d.ts +2 -0
  177. package/dist/gs/math/tanh.gs.js +17 -0
  178. package/dist/gs/math/tanh.gs.js.map +1 -0
  179. package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
  180. package/dist/gs/math/trig_reduce.gs.js +62 -0
  181. package/dist/gs/math/trig_reduce.gs.js.map +1 -0
  182. package/dist/gs/math/unsafe.gs.d.ts +4 -0
  183. package/dist/gs/math/unsafe.gs.js +47 -0
  184. package/dist/gs/math/unsafe.gs.js.map +1 -0
  185. package/dist/gs/strconv/atob.gs.d.ts +4 -0
  186. package/dist/gs/strconv/atob.gs.js +42 -0
  187. package/dist/gs/strconv/atob.gs.js.map +1 -0
  188. package/dist/gs/strconv/atof.gs.d.ts +2 -0
  189. package/dist/gs/strconv/atof.gs.js +51 -0
  190. package/dist/gs/strconv/atof.gs.js.map +1 -0
  191. package/dist/gs/strconv/atoi.gs.d.ts +33 -0
  192. package/dist/gs/strconv/atoi.gs.js +200 -0
  193. package/dist/gs/strconv/atoi.gs.js.map +1 -0
  194. package/dist/gs/strconv/doc.gs.d.ts +1 -0
  195. package/dist/gs/strconv/doc.gs.js +2 -0
  196. package/dist/gs/strconv/doc.gs.js.map +1 -0
  197. package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
  198. package/dist/gs/strconv/ftoa.gs.js +58 -0
  199. package/dist/gs/strconv/ftoa.gs.js.map +1 -0
  200. package/dist/gs/strconv/index.d.ts +6 -0
  201. package/dist/gs/strconv/index.js +7 -0
  202. package/dist/gs/strconv/index.js.map +1 -0
  203. package/dist/gs/strconv/itoa.gs.d.ts +6 -0
  204. package/dist/gs/strconv/itoa.gs.js +37 -0
  205. package/dist/gs/strconv/itoa.gs.js.map +1 -0
  206. package/dist/gs/strconv/quote.gs.d.ts +19 -0
  207. package/dist/gs/strconv/quote.gs.js +217 -0
  208. package/dist/gs/strconv/quote.gs.js.map +1 -0
  209. package/dist/gs/strings/index.d.ts +3 -0
  210. package/dist/gs/strings/index.js +4 -0
  211. package/dist/gs/strings/index.js.map +1 -1
  212. package/dist/gs/strings/replace.d.ts +0 -74
  213. package/dist/gs/strings/replace.js +6 -204
  214. package/dist/gs/strings/replace.js.map +1 -1
  215. package/dist/gs/strings/search.d.ts +0 -1
  216. package/dist/gs/strings/search.js +0 -21
  217. package/dist/gs/strings/search.js.map +1 -1
  218. package/dist/gs/sync/atomic/doc.gs.d.ts +28 -0
  219. package/dist/gs/sync/atomic/doc.gs.js +265 -0
  220. package/dist/gs/sync/atomic/doc.gs.js.map +1 -0
  221. package/dist/gs/sync/atomic/doc_64.gs.d.ts +15 -0
  222. package/dist/gs/sync/atomic/doc_64.gs.js +165 -0
  223. package/dist/gs/sync/atomic/doc_64.gs.js.map +1 -0
  224. package/dist/gs/sync/atomic/index.d.ts +4 -0
  225. package/dist/gs/sync/atomic/index.js +5 -0
  226. package/dist/gs/sync/atomic/index.js.map +1 -0
  227. package/dist/gs/sync/atomic/type.gs.d.ts +130 -0
  228. package/dist/gs/sync/atomic/type.gs.js +433 -0
  229. package/dist/gs/sync/atomic/type.gs.js.map +1 -0
  230. package/dist/gs/sync/atomic/value.gs.d.ts +19 -0
  231. package/dist/gs/sync/atomic/value.gs.js +116 -0
  232. package/dist/gs/sync/atomic/value.gs.js.map +1 -0
  233. package/dist/gs/unsafe/unsafe.d.ts +1 -0
  234. package/dist/gs/unsafe/unsafe.js +5 -0
  235. package/dist/gs/unsafe/unsafe.js.map +1 -1
  236. package/gs/builtin/builtin.ts +9 -7
  237. package/gs/builtin/map.ts +5 -1
  238. package/gs/builtin/slice.ts +152 -24
  239. package/gs/github.com/pkg/errors/errors.ts +307 -0
  240. package/gs/github.com/pkg/errors/go113.ts +39 -0
  241. package/gs/github.com/pkg/errors/index.ts +3 -0
  242. package/gs/github.com/pkg/errors/stack.ts +127 -0
  243. package/gs/maps/index.ts +2 -2
  244. package/gs/maps/iter.ts +67 -0
  245. package/gs/maps/maps.ts +89 -0
  246. package/gs/math/TODO.md +156 -0
  247. package/gs/math/abs.gs.test.ts +29 -0
  248. package/gs/math/abs.gs.ts +13 -0
  249. package/gs/math/acosh.gs.test.ts +39 -0
  250. package/gs/math/acosh.gs.ts +21 -0
  251. package/gs/math/asin.gs.test.ts +66 -0
  252. package/gs/math/asin.gs.ts +27 -0
  253. package/gs/math/asinh.gs.test.ts +37 -0
  254. package/gs/math/asinh.gs.ts +21 -0
  255. package/gs/math/atan.gs.test.ts +49 -0
  256. package/gs/math/atan.gs.ts +27 -0
  257. package/gs/math/atan2.gs.test.ts +55 -0
  258. package/gs/math/atan2.gs.ts +37 -0
  259. package/gs/math/atanh.gs.test.ts +47 -0
  260. package/gs/math/atanh.gs.ts +21 -0
  261. package/gs/math/bits.gs.test.ts +88 -0
  262. package/gs/math/bits.gs.ts +61 -0
  263. package/gs/math/cbrt.gs.test.ts +57 -0
  264. package/gs/math/cbrt.gs.ts +20 -0
  265. package/gs/math/const.gs.test.ts +54 -0
  266. package/gs/math/const.gs.ts +93 -0
  267. package/gs/math/copysign.gs.test.ts +44 -0
  268. package/gs/math/copysign.gs.ts +27 -0
  269. package/gs/math/dim.gs.test.ts +102 -0
  270. package/gs/math/dim.gs.ts +84 -0
  271. package/gs/math/erf.gs.test.ts +92 -0
  272. package/gs/math/erf.gs.ts +409 -0
  273. package/gs/math/erfinv.gs.test.ts +104 -0
  274. package/gs/math/erfinv.gs.ts +169 -0
  275. package/gs/math/exp.gs.test.ts +82 -0
  276. package/gs/math/exp.gs.ts +39 -0
  277. package/gs/math/expm1.gs.test.ts +48 -0
  278. package/gs/math/expm1.gs.ts +23 -0
  279. package/gs/math/floor.gs.test.ts +146 -0
  280. package/gs/math/floor.gs.ts +88 -0
  281. package/gs/math/fma.gs.test.ts +83 -0
  282. package/gs/math/fma.gs.ts +7 -0
  283. package/gs/math/frexp.gs.test.ts +146 -0
  284. package/gs/math/frexp.gs.ts +37 -0
  285. package/gs/math/gamma.gs.test.ts +66 -0
  286. package/gs/math/gamma.gs.ts +158 -0
  287. package/gs/math/hypot.gs.test.ts +73 -0
  288. package/gs/math/hypot.gs.ts +23 -0
  289. package/gs/math/index.ts +44 -0
  290. package/gs/math/j0.gs.test.ts +74 -0
  291. package/gs/math/j0.gs.ts +257 -0
  292. package/gs/math/j1.gs.test.ts +81 -0
  293. package/gs/math/j1.gs.ts +231 -0
  294. package/gs/math/jn.gs.test.ts +133 -0
  295. package/gs/math/jn.gs.ts +447 -0
  296. package/gs/math/ldexp.gs.test.ts +128 -0
  297. package/gs/math/ldexp.gs.ts +28 -0
  298. package/gs/math/lgamma.gs.test.ts +102 -0
  299. package/gs/math/lgamma.gs.ts +251 -0
  300. package/gs/math/log.gs.test.ts +40 -0
  301. package/gs/math/log.gs.ts +21 -0
  302. package/gs/math/log10.gs.test.ts +80 -0
  303. package/gs/math/log10.gs.ts +25 -0
  304. package/gs/math/log1p.gs.test.ts +55 -0
  305. package/gs/math/log1p.gs.ts +24 -0
  306. package/gs/math/logb.gs.test.ts +87 -0
  307. package/gs/math/logb.gs.ts +54 -0
  308. package/gs/math/mod.gs.test.ts +64 -0
  309. package/gs/math/mod.gs.ts +36 -0
  310. package/gs/math/modf.gs.test.ts +80 -0
  311. package/gs/math/modf.gs.ts +32 -0
  312. package/gs/math/nextafter.gs.test.ts +107 -0
  313. package/gs/math/nextafter.gs.ts +71 -0
  314. package/gs/math/pow.gs.test.ts +103 -0
  315. package/gs/math/pow.gs.ts +55 -0
  316. package/gs/math/pow10.gs.test.ts +58 -0
  317. package/gs/math/pow10.gs.ts +19 -0
  318. package/gs/math/remainder.gs.test.ts +70 -0
  319. package/gs/math/remainder.gs.ts +33 -0
  320. package/gs/math/signbit.gs.test.ts +33 -0
  321. package/gs/math/signbit.gs.ts +8 -0
  322. package/gs/math/sin.gs.test.ts +83 -0
  323. package/gs/math/sin.gs.ts +38 -0
  324. package/gs/math/sincos.gs.test.ts +91 -0
  325. package/gs/math/sincos.gs.ts +15 -0
  326. package/gs/math/sinh.gs.test.ts +66 -0
  327. package/gs/math/sinh.gs.ts +34 -0
  328. package/gs/math/sqrt.gs.test.ts +49 -0
  329. package/gs/math/sqrt.gs.ts +20 -0
  330. package/gs/math/tan.gs.test.ts +50 -0
  331. package/gs/math/tan.gs.ts +23 -0
  332. package/gs/math/tanh.gs.test.ts +52 -0
  333. package/gs/math/tanh.gs.ts +23 -0
  334. package/gs/math/trig_reduce.gs.ts +66 -0
  335. package/gs/math/unsafe.gs.ts +52 -0
  336. package/gs/strconv/atob.gs.ts +45 -0
  337. package/gs/strconv/atof.gs.ts +60 -0
  338. package/gs/strconv/atoi.gs.ts +243 -0
  339. package/gs/strconv/doc.gs.ts +2 -0
  340. package/gs/strconv/ftoa.gs.ts +66 -0
  341. package/gs/strconv/index.ts +6 -0
  342. package/gs/strconv/itoa.gs.ts +41 -0
  343. package/gs/strconv/quote.gs.ts +245 -0
  344. package/gs/strings/index.ts +4 -0
  345. package/gs/strings/replace.ts +9 -237
  346. package/gs/strings/search.ts +0 -28
  347. package/gs/sync/atomic/doc.gs.ts +276 -0
  348. package/gs/sync/atomic/doc_64.gs.ts +168 -0
  349. package/gs/sync/atomic/index.ts +4 -0
  350. package/gs/sync/atomic/type.gs.ts +596 -0
  351. package/gs/sync/atomic/value.gs.ts +158 -0
  352. package/gs/unsafe/unsafe.ts +6 -0
  353. package/package.json +1 -1
  354. package/gs/maps/iter.gs.ts +0 -71
  355. package/gs/maps/maps.gs.ts +0 -87
  356. package/gs/stringslite/godoc.txt +0 -17
  357. package/gs/stringslite/index.ts +0 -1
  358. package/gs/stringslite/strings.ts +0 -82
@@ -0,0 +1,61 @@
1
+ // https://oeis.org/A001113
2
+ export let E = Math.E;
3
+ // https://oeis.org/A000796
4
+ export let Pi = Math.PI;
5
+ // https://oeis.org/A001622
6
+ export let Phi = 1.61803398874989484820458683436563811772030917980576286213544862;
7
+ // https://oeis.org/A002193
8
+ export let Sqrt2 = Math.SQRT2;
9
+ // https://oeis.org/A019774
10
+ export let SqrtE = Math.sqrt(Math.E);
11
+ // https://oeis.org/A002161
12
+ export let SqrtPi = Math.sqrt(Math.PI);
13
+ // https://oeis.org/A139339
14
+ export let SqrtPhi = Math.sqrt(1.61803398874989484820458683436563811772030917980576286213544862);
15
+ // https://oeis.org/A002162
16
+ export let Ln2 = Math.LN2;
17
+ export let Log2E = Math.LOG2E;
18
+ // https://oeis.org/A002392
19
+ export let Ln10 = Math.LN10;
20
+ export let Log10E = Math.LOG10E;
21
+ // 3.40282346638528859811704183484516925440e+38
22
+ export let MaxFloat32 = 3.4028234663852886e+38;
23
+ // 1.401298464324817070923729583289916131280e-45
24
+ export let SmallestNonzeroFloat32 = 1.401298464324817e-45;
25
+ // 1.79769313486231570814527423731704356798070e+308
26
+ export let MaxFloat64 = Number.MAX_VALUE;
27
+ // 4.9406564584124654417656879286822137236505980e-324
28
+ export let SmallestNonzeroFloat64 = Number.MIN_VALUE;
29
+ // 32 or 64
30
+ let intSize = (32 << ((~0 >> 63)));
31
+ // MaxInt32 or MaxInt64 depending on intSize.
32
+ export let MaxInt = 9223372036854775807n;
33
+ // MinInt32 or MinInt64 depending on intSize.
34
+ export let MinInt = -9223372036854775808n;
35
+ // 127
36
+ export let MaxInt8 = 127;
37
+ // -128
38
+ export let MinInt8 = -128;
39
+ // 32767
40
+ export let MaxInt16 = 32767;
41
+ // -32768
42
+ export let MinInt16 = -32768;
43
+ // 2147483647
44
+ export let MaxInt32 = 2147483647;
45
+ // -2147483648
46
+ export let MinInt32 = -2147483648;
47
+ // 9223372036854775807
48
+ export let MaxInt64 = 9223372036854775807n;
49
+ // -9223372036854775808
50
+ export let MinInt64 = -9223372036854775808n;
51
+ // MaxUint32 or MaxUint64 depending on intSize.
52
+ export let MaxUint = 0xffffffffffffffffn;
53
+ // 255
54
+ export let MaxUint8 = 255;
55
+ // 65535
56
+ export let MaxUint16 = 65535;
57
+ // 4294967295
58
+ export let MaxUint32 = 4294967295;
59
+ // 18446744073709551615
60
+ export let MaxUint64 = 0xffffffffffffffffn;
61
+ //# sourceMappingURL=const.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.gs.js","sourceRoot":"","sources":["../../../gs/math/const.gs.ts"],"names":[],"mappings":"AAEA,2BAA2B;AAC3B,MAAM,CAAC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAA;AAE7B,2BAA2B;AAC3B,MAAM,CAAC,IAAI,EAAE,GAAW,IAAI,CAAC,EAAE,CAAA;AAE/B,2BAA2B;AAC3B,MAAM,CAAC,IAAI,GAAG,GAAW,gEAAgE,CAAA;AAEzF,2BAA2B;AAC3B,MAAM,CAAC,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAA;AAErC,2BAA2B;AAC3B,MAAM,CAAC,IAAI,KAAK,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE5C,2BAA2B;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAE9C,2BAA2B;AAC3B,MAAM,CAAC,IAAI,OAAO,GAAW,IAAI,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAExG,2BAA2B;AAC3B,MAAM,CAAC,IAAI,GAAG,GAAW,IAAI,CAAC,GAAG,CAAA;AAEjC,MAAM,CAAC,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAA;AAErC,2BAA2B;AAC3B,MAAM,CAAC,IAAI,IAAI,GAAW,IAAI,CAAC,IAAI,CAAA;AAEnC,MAAM,CAAC,IAAI,MAAM,GAAW,IAAI,CAAC,MAAM,CAAA;AAEvC,+CAA+C;AAC/C,MAAM,CAAC,IAAI,UAAU,GAAW,sBAAsB,CAAA;AAEtD,gDAAgD;AAChD,MAAM,CAAC,IAAI,sBAAsB,GAAW,qBAAqB,CAAA;AAEjE,mDAAmD;AACnD,MAAM,CAAC,IAAI,UAAU,GAAW,MAAM,CAAC,SAAS,CAAA;AAEhD,qDAAqD;AACrD,MAAM,CAAC,IAAI,sBAAsB,GAAW,MAAM,CAAC,SAAS,CAAA;AAE5D,WAAW;AACX,IAAI,OAAO,GAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAEtD,6CAA6C;AAC7C,MAAM,CAAC,IAAI,MAAM,GAAW,oBAAoB,CAAA;AAEhD,6CAA6C;AAC7C,MAAM,CAAC,IAAI,MAAM,GAAW,CAAC,oBAAoB,CAAA;AAEjD,MAAM;AACN,MAAM,CAAC,IAAI,OAAO,GAAW,GAAG,CAAA;AAEhC,OAAO;AACP,MAAM,CAAC,IAAI,OAAO,GAAW,CAAC,GAAG,CAAA;AAEjC,QAAQ;AACR,MAAM,CAAC,IAAI,QAAQ,GAAW,KAAK,CAAA;AAEnC,SAAS;AACT,MAAM,CAAC,IAAI,QAAQ,GAAW,CAAC,KAAK,CAAA;AAEpC,aAAa;AACb,MAAM,CAAC,IAAI,QAAQ,GAAW,UAAU,CAAA;AAExC,cAAc;AACd,MAAM,CAAC,IAAI,QAAQ,GAAW,CAAC,UAAU,CAAA;AAEzC,sBAAsB;AACtB,MAAM,CAAC,IAAI,QAAQ,GAAW,oBAAoB,CAAA;AAElD,uBAAuB;AACvB,MAAM,CAAC,IAAI,QAAQ,GAAW,CAAC,oBAAoB,CAAA;AAEnD,+CAA+C;AAC/C,MAAM,CAAC,IAAI,OAAO,GAAW,mBAAmB,CAAA;AAEhD,MAAM;AACN,MAAM,CAAC,IAAI,QAAQ,GAAW,GAAG,CAAA;AAEjC,QAAQ;AACR,MAAM,CAAC,IAAI,SAAS,GAAW,KAAK,CAAA;AAEpC,aAAa;AACb,MAAM,CAAC,IAAI,SAAS,GAAW,UAAU,CAAA;AAEzC,uBAAuB;AACvB,MAAM,CAAC,IAAI,SAAS,GAAW,mBAAmB,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function Copysign(f: number, sign: number): number;
@@ -0,0 +1,20 @@
1
+ // Copysign returns a value with the magnitude of f
2
+ // and the sign of sign.
3
+ export function Copysign(f, sign) {
4
+ // Handle special cases for zero
5
+ if (f === 0) {
6
+ return sign < 0 || Object.is(sign, -0) ? -0 : 0;
7
+ }
8
+ const magnitude = Math.abs(f);
9
+ const signValue = Math.sign(sign);
10
+ // Handle NaN case
11
+ if (Number.isNaN(sign)) {
12
+ return signValue < 0 ? -magnitude : magnitude;
13
+ }
14
+ // Handle negative zero case
15
+ if (Object.is(sign, -0)) {
16
+ return -magnitude;
17
+ }
18
+ return signValue < 0 ? -magnitude : magnitude;
19
+ }
20
+ //# sourceMappingURL=copysign.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copysign.gs.js","sourceRoot":"","sources":["../../../gs/math/copysign.gs.ts"],"names":[],"mappings":"AAGA,mDAAmD;AACnD,wBAAwB;AACxB,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,IAAY;IAC/C,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjC,kBAAkB;IAClB,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9C,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function Dim(x: number, y: number): number;
2
+ export declare function Max(x: number, y: number): number;
3
+ export declare function max(x: number, y: number): number;
4
+ export declare function Min(x: number, y: number): number;
5
+ export declare function min(x: number, y: number): number;
@@ -0,0 +1,69 @@
1
+ // Dim returns the maximum of x-y or 0.
2
+ //
3
+ // Special cases are:
4
+ //
5
+ // Dim(+Inf, +Inf) = NaN
6
+ // Dim(-Inf, -Inf) = NaN
7
+ // Dim(x, NaN) = Dim(NaN, x) = NaN
8
+ export function Dim(x, y) {
9
+ const v = x - y;
10
+ return v <= 0 ? 0 : v;
11
+ }
12
+ // Max returns the larger of x or y.
13
+ //
14
+ // Special cases are:
15
+ //
16
+ // Max(x, +Inf) = Max(+Inf, x) = +Inf
17
+ // Max(x, NaN) = Max(NaN, x) = NaN
18
+ // Max(+0, ±0) = Max(±0, +0) = +0
19
+ // Max(-0, -0) = -0
20
+ //
21
+ // Note that this differs from the built-in function max when called
22
+ // with NaN and +Inf.
23
+ export function Max(x, y) {
24
+ return max(x, y);
25
+ }
26
+ export function max(x, y) {
27
+ // Handle NaN cases
28
+ if (Number.isNaN(x) || Number.isNaN(y)) {
29
+ return Number.NaN;
30
+ }
31
+ // Handle infinity cases
32
+ if (x === Number.POSITIVE_INFINITY || y === Number.POSITIVE_INFINITY) {
33
+ return Number.POSITIVE_INFINITY;
34
+ }
35
+ // Handle zero cases - prefer +0 over -0
36
+ if (x === 0 && y === 0) {
37
+ return Object.is(x, -0) ? y : x;
38
+ }
39
+ return Math.max(x, y);
40
+ }
41
+ // Min returns the smaller of x or y.
42
+ //
43
+ // Special cases are:
44
+ //
45
+ // Min(x, -Inf) = Min(-Inf, x) = -Inf
46
+ // Min(x, NaN) = Min(NaN, x) = NaN
47
+ // Min(-0, ±0) = Min(±0, -0) = -0
48
+ //
49
+ // Note that this differs from the built-in function min when called
50
+ // with NaN and -Inf.
51
+ export function Min(x, y) {
52
+ return min(x, y);
53
+ }
54
+ export function min(x, y) {
55
+ // Handle NaN cases
56
+ if (Number.isNaN(x) || Number.isNaN(y)) {
57
+ return Number.NaN;
58
+ }
59
+ // Handle infinity cases
60
+ if (x === Number.NEGATIVE_INFINITY || y === Number.NEGATIVE_INFINITY) {
61
+ return Number.NEGATIVE_INFINITY;
62
+ }
63
+ // Handle zero cases - prefer -0 over +0
64
+ if (x === 0 && y === 0) {
65
+ return Object.is(x, -0) ? x : y;
66
+ }
67
+ return Math.min(x, y);
68
+ }
69
+ //# sourceMappingURL=dim.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dim.gs.js","sourceRoot":"","sources":["../../../gs/math/dim.gs.ts"],"names":[],"mappings":"AAKA,uCAAuC;AACvC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,wBAAwB;AACxB,wBAAwB;AACxB,kCAAkC;AAClC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC;AAED,oCAAoC;AACpC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,qCAAqC;AACrC,kCAAkC;AAClC,iCAAiC;AACjC,mBAAmB;AACnB,EAAE;AACF,oEAAoE;AACpE,qBAAqB;AACrB,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,mBAAmB;IACnB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAA;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC,iBAAiB,CAAA;IAChC,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtB,CAAC;AAED,qCAAqC;AACrC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,qCAAqC;AACrC,kCAAkC;AAClC,iCAAiC;AACjC,EAAE;AACF,oEAAoE;AACpE,qBAAqB;AACrB,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,mBAAmB;IACnB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAA;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC,iBAAiB,CAAA;IAChC,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function Erf(x: number): number;
2
+ export declare function erf(x: number): number;
3
+ export declare function Erfc(x: number): number;
4
+ export declare function erfc(x: number): number;
@@ -0,0 +1,336 @@
1
+ import { IsInf, IsNaN, NaN } from "./bits.gs.js";
2
+ import { Exp } from "./exp.gs.js";
3
+ import { Float64bits, Float64frombits } from "./unsafe.gs.js";
4
+ // 0x3FEB0AC160000000
5
+ let erx = 8.45062911510467529297e-01;
6
+ // Coefficients for approximation to erf in [0, 0.84375]
7
+ // 0x3FC06EBA8214DB69
8
+ let efx = 1.28379167095512586316e-01;
9
+ // 0x3FF06EBA8214DB69
10
+ let efx8 = 1.02703333676410069053e+00;
11
+ // 0x3FC06EBA8214DB68
12
+ let pp0 = 1.28379167095512558561e-01;
13
+ // 0xBFD4CD7D691CB913
14
+ let pp1 = -3.25042107247001499370e-01;
15
+ // 0xBF9D2A51DBD7194F
16
+ let pp2 = -2.84817495755985104766e-02;
17
+ // 0xBF77A291236668E4
18
+ let pp3 = -5.77027029648944159157e-03;
19
+ // 0xBEF8EAD6120016AC
20
+ let pp4 = -2.37630166566501626084e-05;
21
+ // 0x3FD97779CDDADC09
22
+ let qq1 = 3.97917223959155352819e-01;
23
+ // 0x3FB0A54C5536CEBA
24
+ let qq2 = 6.50222499887672944485e-02;
25
+ // 0x3F74D022C4D36B0F
26
+ let qq3 = 5.08130628187576562776e-03;
27
+ // 0x3F215DC9221C1A10
28
+ let qq4 = 1.32494738004321644526e-04;
29
+ // 0xBED09C4342A26120
30
+ let qq5 = -3.96022827877536812320e-06;
31
+ // Coefficients for approximation to erf in [0.84375, 1.25]
32
+ // 0xBF6359B8BEF77538
33
+ let pa0 = -2.36211856075265944077e-03;
34
+ // 0x3FDA8D00AD92B34D
35
+ let pa1 = 4.14856118683748331666e-01;
36
+ // 0xBFD7D240FBB8C3F1
37
+ let pa2 = -3.72207876035701323847e-01;
38
+ // 0x3FD45FCA805120E4
39
+ let pa3 = 3.18346619901161753674e-01;
40
+ // 0xBFBC63983D3E28EC
41
+ let pa4 = -1.10894694282396677476e-01;
42
+ // 0x3FA22A36599795EB
43
+ let pa5 = 3.54783043256182359371e-02;
44
+ // 0xBF61BF380A96073F
45
+ let pa6 = -2.16637559486879084300e-03;
46
+ // 0x3FBB3E6618EEE323
47
+ let qa1 = 1.06420880400844228286e-01;
48
+ // 0x3FE14AF092EB6F33
49
+ let qa2 = 5.40397917702171048937e-01;
50
+ // 0x3FB2635CD99FE9A7
51
+ let qa3 = 7.18286544141962662868e-02;
52
+ // 0x3FC02660E763351F
53
+ let qa4 = 1.26171219808761642112e-01;
54
+ // 0x3F8BEDC26B51DD1C
55
+ let qa5 = 1.36370839120290507362e-02;
56
+ // 0x3F888B545735151D
57
+ let qa6 = 1.19844998467991074170e-02;
58
+ // Coefficients for approximation to erfc in [1.25, 1/0.35]
59
+ // 0xBF843412600D6435
60
+ let ra0 = -9.86494403484714822705e-03;
61
+ // 0xBFE63416E4BA7360
62
+ let ra1 = -6.93858572707181764372e-01;
63
+ // 0xC0251E0441B0E726
64
+ let ra2 = -1.05586262253232909814e+01;
65
+ // 0xC04F300AE4CBA38D
66
+ let ra3 = -6.23753324503260060396e+01;
67
+ // 0xC0644CB184282266
68
+ let ra4 = -1.62396669462573470355e+02;
69
+ // 0xC067135CEBCCABB2
70
+ let ra5 = -1.84605092906711035994e+02;
71
+ // 0xC054526557E4D2F2
72
+ let ra6 = -8.12874355063065934246e+01;
73
+ // 0xC023A0EFC69AC25C
74
+ let ra7 = -9.81432934416914548592e+00;
75
+ // 0x4033A6B9BD707687
76
+ let sa1 = 1.96512716674392571292e+01;
77
+ // 0x4061350C526AE721
78
+ let sa2 = 1.37657754143519042600e+02;
79
+ // 0x407B290DD58A1A71
80
+ let sa3 = 4.34565877475229228821e+02;
81
+ // 0x40842B1921EC2868
82
+ let sa4 = 6.45387271733267880336e+02;
83
+ // 0x407AD02157700314
84
+ let sa5 = 4.29008140027567833386e+02;
85
+ // 0x405B28A3EE48AE2C
86
+ let sa6 = 1.08635005541779435134e+02;
87
+ // 0x401A47EF8E484A93
88
+ let sa7 = 6.57024977031928170135e+00;
89
+ // 0xBFAEEFF2EE749A62
90
+ let sa8 = -6.04244152148580987438e-02;
91
+ // Coefficients for approximation to erfc in [1/.35, 28]
92
+ // 0xBF84341239E86F4A
93
+ let rb0 = -9.86494292470009928597e-03;
94
+ // 0xBFE993BA70C285DE
95
+ let rb1 = -7.99283237680523006574e-01;
96
+ // 0xC031C209555F995A
97
+ let rb2 = -1.77579549177547519889e+01;
98
+ // 0xC064145D43C5ED98
99
+ let rb3 = -1.60636384855821916062e+02;
100
+ // 0xC083EC881375F228
101
+ let rb4 = -6.37566443368389627722e+02;
102
+ // 0xC09004616A2E5992
103
+ let rb5 = -1.02509513161107724954e+03;
104
+ // 0xC07E384E9BDC383F
105
+ let rb6 = -4.83519191608651397019e+02;
106
+ // 0x403E568B261D5190
107
+ let sb1 = 3.03380607434824582924e+01;
108
+ // 0x40745CAE221B9F0A
109
+ let sb2 = 3.25792512996573918826e+02;
110
+ // 0x409802EB189D5118
111
+ let sb3 = 1.53672958608443695994e+03;
112
+ // 0x40A8FFB7688C246A
113
+ let sb4 = 3.19985821950859553908e+03;
114
+ // 0x40A3F219CEDF3BE6
115
+ let sb5 = 2.55305040643316442583e+03;
116
+ // 0x407DA874E79FE763
117
+ let sb6 = 4.74528541206955367215e+02;
118
+ // 0xC03670E242712D62
119
+ let sb7 = -2.24409524465858183362e+01;
120
+ // Erf returns the error function of x.
121
+ //
122
+ // Special cases are:
123
+ //
124
+ // Erf(+Inf) = 1
125
+ // Erf(-Inf) = -1
126
+ // Erf(NaN) = NaN
127
+ export function Erf(x) {
128
+ return erf(x);
129
+ }
130
+ export function erf(x) {
131
+ // 0x0080000000000000
132
+ // 2**-28
133
+ // 0x0080000000000000
134
+ let VeryTiny = 2.848094538889218e-306;
135
+ // 2**-28
136
+ let Small = 1.0 / ((1 << 28));
137
+ // special cases
138
+ switch (true) {
139
+ case IsNaN(x):
140
+ return NaN();
141
+ break;
142
+ case IsInf(x, 1):
143
+ return 1;
144
+ break;
145
+ case IsInf(x, -1):
146
+ return -1;
147
+ break;
148
+ }
149
+ let sign = false;
150
+ if (x < 0) {
151
+ x = -x;
152
+ sign = true;
153
+ }
154
+ // |x| < 0.84375
155
+ // |x| < 2**-28
156
+ // avoid underflow
157
+ if (x < 0.84375) {
158
+ // |x| < 0.84375
159
+ let temp = 0;
160
+ // |x| < 2**-28
161
+ // avoid underflow
162
+ if (x < 3.72529e-09) {
163
+ // |x| < 2**-28
164
+ // avoid underflow
165
+ if (x < 2.84809e-306) {
166
+ temp = 0.125 * (8.0 * x + 1.02703 * x); // avoid underflow
167
+ }
168
+ else {
169
+ temp = x + 0.128379 * x;
170
+ }
171
+ }
172
+ else {
173
+ let z = x * x;
174
+ let r = 0.128379 + z * (-0.325042 + z * (-0.0284817 + z * (-0.00577027 + z * -2.3763e-05)));
175
+ let s = 1 + z * (0.397917 + z * (0.0650222 + z * (0.00508131 + z * (0.000132495 + z * -3.96023e-06))));
176
+ let y = r / s;
177
+ temp = x + x * y;
178
+ }
179
+ if (sign) {
180
+ return -temp;
181
+ }
182
+ return temp;
183
+ }
184
+ // 0.84375 <= |x| < 1.25
185
+ if (x < 1.25) {
186
+ // 0.84375 <= |x| < 1.25
187
+ let s = x - 1;
188
+ let P = -0.00236212 + s * (0.414856 + s * (-0.372208 + s * (0.318347 + s * (-0.110895 + s * (0.0354783 + s * -0.00216638)))));
189
+ let Q = 1 + s * (0.106421 + s * (0.540398 + s * (0.0718287 + s * (0.126171 + s * (0.0136371 + s * 0.0119845)))));
190
+ if (sign) {
191
+ return -0.845063 - P / Q;
192
+ }
193
+ return 0.845063 + P / Q;
194
+ }
195
+ // inf > |x| >= 6
196
+ if (x >= 6) {
197
+ // inf > |x| >= 6
198
+ if (sign) {
199
+ return -1;
200
+ }
201
+ return 1;
202
+ }
203
+ let s = 1 / (x * x);
204
+ let R;
205
+ let S;
206
+ // |x| < 1 / 0.35 ~ 2.857143
207
+ // |x| >= 1 / 0.35 ~ 2.857143
208
+ if (x < 1 / 0.35) {
209
+ // |x| < 1 / 0.35 ~ 2.857143
210
+ R = -0.00986494 + s * (-0.693859 + s * (-10.5586 + s * (-62.3753 + s * (-162.397 + s * (-184.605 + s * (-81.2874 + s * -9.81433))))));
211
+ S = 1 + s * (19.6513 + s * (137.658 + s * (434.566 + s * (645.387 + s * (429.008 + s * (108.635 + s * (6.57025 + s * -0.0604244)))))));
212
+ }
213
+ else {
214
+ // |x| >= 1 / 0.35 ~ 2.857143
215
+ R = -0.00986494 + s * (-0.799283 + s * (-17.758 + s * (-160.636 + s * (-637.566 + s * (-1025.1 + s * -483.519)))));
216
+ S = 1 + s * (30.3381 + s * (325.793 + s * (1536.73 + s * (3199.86 + s * (2553.05 + s * (474.529 + s * -22.441))))));
217
+ }
218
+ let z = Float64frombits((Float64bits(x) & 0xffffffff00000000)); // pseudo-single (20-bit) precision x
219
+ let r = Exp(-z * z - 0.5625) * Exp((z - x) * (z + x) + R / S);
220
+ if (sign) {
221
+ return r / x - 1;
222
+ }
223
+ return 1 - r / x;
224
+ }
225
+ // Erfc returns the complementary error function of x.
226
+ //
227
+ // Special cases are:
228
+ //
229
+ // Erfc(+Inf) = 0
230
+ // Erfc(-Inf) = 2
231
+ // Erfc(NaN) = NaN
232
+ export function Erfc(x) {
233
+ return erfc(x);
234
+ }
235
+ export function erfc(x) {
236
+ // 2**-56
237
+ let Tiny = 1.0 / ((1 << 56));
238
+ // special cases
239
+ switch (true) {
240
+ case IsNaN(x):
241
+ return NaN();
242
+ break;
243
+ case IsInf(x, 1):
244
+ return 0;
245
+ break;
246
+ case IsInf(x, -1):
247
+ return 2;
248
+ break;
249
+ }
250
+ let sign = false;
251
+ if (x < 0) {
252
+ x = -x;
253
+ sign = true;
254
+ }
255
+ // |x| < 0.84375
256
+ // |x| < 2**-56
257
+ // |x| < 1/4
258
+ if (x < 0.84375) {
259
+ // |x| < 0.84375
260
+ let temp = 0;
261
+ // |x| < 2**-56
262
+ // |x| < 1/4
263
+ if (x < 1.38778e-17) {
264
+ // |x| < 2**-56
265
+ temp = x;
266
+ }
267
+ else {
268
+ let z = x * x;
269
+ let r = 0.128379 + z * (-0.325042 + z * (-0.0284817 + z * (-0.00577027 + z * -2.3763e-05)));
270
+ let s = 1 + z * (0.397917 + z * (0.0650222 + z * (0.00508131 + z * (0.000132495 + z * -3.96023e-06))));
271
+ let y = r / s;
272
+ // |x| < 1/4
273
+ if (x < 0.25) {
274
+ // |x| < 1/4
275
+ temp = x + x * y;
276
+ }
277
+ else {
278
+ temp = 0.5 + (x * y + (x - 0.5));
279
+ }
280
+ }
281
+ if (sign) {
282
+ return 1 + temp;
283
+ }
284
+ return 1 - temp;
285
+ }
286
+ // 0.84375 <= |x| < 1.25
287
+ if (x < 1.25) {
288
+ // 0.84375 <= |x| < 1.25
289
+ let s = x - 1;
290
+ let P = -0.00236212 + s * (0.414856 + s * (-0.372208 + s * (0.318347 + s * (-0.110895 + s * (0.0354783 + s * -0.00216638)))));
291
+ let Q = 1 + s * (0.106421 + s * (0.540398 + s * (0.0718287 + s * (0.126171 + s * (0.0136371 + s * 0.0119845)))));
292
+ if (sign) {
293
+ return 1 + 0.845063 + P / Q;
294
+ }
295
+ return 1 - 0.845063 - P / Q;
296
+ }
297
+ // |x| < 28
298
+ // |x| < 1 / 0.35 ~ 2.857143
299
+ // |x| >= 1 / 0.35 ~ 2.857143
300
+ // x < -6
301
+ // pseudo-single (20-bit) precision x
302
+ if (x < 28) {
303
+ // |x| < 28
304
+ let s = 1 / (x * x);
305
+ let R;
306
+ let S;
307
+ // |x| < 1 / 0.35 ~ 2.857143
308
+ // |x| >= 1 / 0.35 ~ 2.857143
309
+ // x < -6
310
+ if (x < 1 / 0.35) {
311
+ // |x| < 1 / 0.35 ~ 2.857143
312
+ R = -0.00986494 + s * (-0.693859 + s * (-10.5586 + s * (-62.3753 + s * (-162.397 + s * (-184.605 + s * (-81.2874 + s * -9.81433))))));
313
+ S = 1 + s * (19.6513 + s * (137.658 + s * (434.566 + s * (645.387 + s * (429.008 + s * (108.635 + s * (6.57025 + s * -0.0604244)))))));
314
+ }
315
+ else {
316
+ // |x| >= 1 / 0.35 ~ 2.857143
317
+ // x < -6
318
+ if (sign && x > 6) {
319
+ return 2;
320
+ }
321
+ R = -0.00986494 + s * (-0.799283 + s * (-17.758 + s * (-160.636 + s * (-637.566 + s * (-1025.1 + s * -483.519)))));
322
+ S = 1 + s * (30.3381 + s * (325.793 + s * (1536.73 + s * (3199.86 + s * (2553.05 + s * (474.529 + s * -22.441))))));
323
+ }
324
+ let z = Float64frombits((Float64bits(x) & 0xffffffff00000000)); // pseudo-single (20-bit) precision x
325
+ let r = Exp(-z * z - 0.5625) * Exp((z - x) * (z + x) + R / S);
326
+ if (sign) {
327
+ return 2 - r / x;
328
+ }
329
+ return r / x;
330
+ }
331
+ if (sign) {
332
+ return 2;
333
+ }
334
+ return 0;
335
+ }
336
+ //# sourceMappingURL=erf.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erf.gs.js","sourceRoot":"","sources":["../../../gs/math/erf.gs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function Erfinv(x: number): number;
2
+ export declare function Erfcinv(x: number): number;
@@ -0,0 +1,118 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { Inf, IsNaN, NaN } from "./bits.gs.js";
3
+ import { Log } from "./log.gs.js";
4
+ import { Sqrt } from "./sqrt.gs.js";
5
+ // Coefficients for approximation to erf in |x| <= 0.85
6
+ let a0 = 1.1975323115670912564578e0;
7
+ let a1 = 4.7072688112383978012285e1;
8
+ let a2 = 6.9706266534389598238465e2;
9
+ let a3 = 4.8548868893843886794648e3;
10
+ let a4 = 1.6235862515167575384252e4;
11
+ let a5 = 2.3782041382114385731252e4;
12
+ let a6 = 1.1819493347062294404278e4;
13
+ let a7 = 8.8709406962545514830200e2;
14
+ let b0 = 1.0000000000000000000e0;
15
+ let b1 = 4.2313330701600911252e1;
16
+ let b2 = 6.8718700749205790830e2;
17
+ let b3 = 5.3941960214247511077e3;
18
+ let b4 = 2.1213794301586595867e4;
19
+ let b5 = 3.9307895800092710610e4;
20
+ let b6 = 2.8729085735721942674e4;
21
+ let b7 = 5.2264952788528545610e3;
22
+ // Coefficients for approximation to erf in 0.85 < |x| <= 1-2*exp(-25)
23
+ let c0 = 1.42343711074968357734e0;
24
+ let c1 = 4.63033784615654529590e0;
25
+ let c2 = 5.76949722146069140550e0;
26
+ let c3 = 3.64784832476320460504e0;
27
+ let c4 = 1.27045825245236838258e0;
28
+ let c5 = 2.41780725177450611770e-1;
29
+ let c6 = 2.27238449892691845833e-2;
30
+ let c7 = 7.74545014278341407640e-4;
31
+ let d0 = 1.4142135623730950488016887e0;
32
+ let d1 = 2.9036514445419946173133295e0;
33
+ let d2 = 2.3707661626024532365971225e0;
34
+ let d3 = 9.7547832001787427186894837e-1;
35
+ let d4 = 2.0945065210512749128288442e-1;
36
+ let d5 = 2.1494160384252876777097297e-2;
37
+ let d6 = 7.7441459065157709165577218e-4;
38
+ let d7 = 1.4859850019840355905497876e-9;
39
+ // Coefficients for approximation to erf in 1-2*exp(-25) < |x| < 1
40
+ let e0 = 6.65790464350110377720e0;
41
+ let e1 = 5.46378491116411436990e0;
42
+ let e2 = 1.78482653991729133580e0;
43
+ let e3 = 2.96560571828504891230e-1;
44
+ let e4 = 2.65321895265761230930e-2;
45
+ let e5 = 1.24266094738807843860e-3;
46
+ let e6 = 2.71155556874348757815e-5;
47
+ let e7 = 2.01033439929228813265e-7;
48
+ let f0 = 1.414213562373095048801689e0;
49
+ let f1 = 8.482908416595164588112026e-1;
50
+ let f2 = 1.936480946950659106176712e-1;
51
+ let f3 = 2.103693768272068968719679e-2;
52
+ let f4 = 1.112800997078859844711555e-3;
53
+ let f5 = 2.611088405080593625138020e-5;
54
+ let f6 = 2.010321207683943062279931e-7;
55
+ let f7 = 2.891024605872965461538222e-15;
56
+ // Erfinv returns the inverse error function of x.
57
+ //
58
+ // Special cases are:
59
+ //
60
+ // Erfinv(1) = +Inf
61
+ // Erfinv(-1) = -Inf
62
+ // Erfinv(x) = NaN if x < -1 or x > 1
63
+ // Erfinv(NaN) = NaN
64
+ export function Erfinv(x) {
65
+ // special cases
66
+ if (IsNaN(x) || x <= -1 || x >= 1) {
67
+ if (x == -1 || x == 1) {
68
+ return Inf($.int(x));
69
+ }
70
+ return NaN();
71
+ }
72
+ let sign = false;
73
+ if (x < 0) {
74
+ x = -x;
75
+ sign = true;
76
+ }
77
+ let ans = 0;
78
+ // |x| <= 0.85
79
+ if (x <= 0.85) {
80
+ // |x| <= 0.85
81
+ let r = 0.180625 - 0.25 * x * x;
82
+ let z1 = ((((((887.094 * r + 11819.5) * r + 23782.041382114385) * r + 16235.9) * r + 4854.89) * r + 697.063) * r + 47.0727) * r + 1.19753;
83
+ let z2 = ((((((5226.5 * r + 28729.1) * r + 39307.9) * r + 21213.8) * r + 5394.2) * r + 687.187) * r + 42.3133) * r + 1;
84
+ ans = (x * z1) / z2;
85
+ }
86
+ else {
87
+ let z1;
88
+ let z2;
89
+ let r = Sqrt(0.693147 - Log(1.0 - x));
90
+ if (r <= 5.0) {
91
+ r -= 1.6;
92
+ z1 = ((((((0.000774545 * r + 0.0227238) * r + 0.241781) * r + 1.27046) * r + 3.64785) * r + 5.7695) * r + 4.63034) * r + 1.42344;
93
+ z2 = ((((((1.48599e-09 * r + 0.000774415) * r + 0.0214942) * r + 0.209451) * r + 0.975478) * r + 2.37077) * r + 2.90365) * r + 1.41421;
94
+ }
95
+ else {
96
+ r -= 5.0;
97
+ z1 = ((((((2.01033e-07 * r + 2.71156e-05) * r + 0.00124266) * r + 0.0265322) * r + 0.296561) * r + 1.78483) * r + 5.46378) * r + 6.6579;
98
+ z2 = ((((((2.89102e-15 * r + 2.01032e-07) * r + 2.61109e-05) * r + 0.0011128) * r + 0.0210369) * r + 0.193648) * r + 0.848291) * r + 1.41421;
99
+ }
100
+ ans = z1 / z2;
101
+ }
102
+ if (sign) {
103
+ return -ans;
104
+ }
105
+ return ans;
106
+ }
107
+ // Erfcinv returns the inverse of [Erfc](x).
108
+ //
109
+ // Special cases are:
110
+ //
111
+ // Erfcinv(0) = +Inf
112
+ // Erfcinv(2) = -Inf
113
+ // Erfcinv(x) = NaN if x < 0 or x > 2
114
+ // Erfcinv(NaN) = NaN
115
+ export function Erfcinv(x) {
116
+ return Erfinv(1 - x);
117
+ }
118
+ //# sourceMappingURL=erfinv.gs.js.map