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.
- package/compiler/analysis.go +28 -20
- package/compiler/analysis_test.go +14 -0
- package/compiler/assignment.go +19 -7
- package/compiler/compiler.go +15 -99
- package/compiler/composite-lit.go +60 -17
- package/compiler/decl.go +1 -1
- package/compiler/expr-call.go +233 -35
- package/compiler/expr-selector.go +28 -2
- package/compiler/expr.go +13 -37
- package/compiler/lit.go +111 -2
- package/compiler/primitive.go +6 -6
- package/compiler/protobuf.go +0 -5
- package/compiler/sanitize.go +101 -0
- package/compiler/spec-struct.go +41 -8
- package/compiler/spec-value.go +29 -18
- package/compiler/stmt-assign.go +22 -1
- package/compiler/stmt.go +26 -9
- package/compiler/type.go +3 -3
- package/dist/gs/builtin/builtin.d.ts +3 -2
- package/dist/gs/builtin/builtin.js +2 -1
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/map.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +7 -1
- package/dist/gs/builtin/slice.js +112 -22
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
- package/dist/gs/github.com/pkg/errors/errors.js +232 -0
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
- package/dist/gs/github.com/pkg/errors/go113.js +34 -0
- package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
- package/dist/gs/github.com/pkg/errors/index.js +4 -0
- package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
- package/dist/gs/github.com/pkg/errors/stack.js +111 -0
- package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
- package/dist/gs/maps/index.d.ts +2 -2
- package/dist/gs/maps/index.js +2 -2
- package/dist/gs/maps/index.js.map +1 -1
- package/dist/gs/maps/iter.d.ts +7 -0
- package/dist/gs/maps/iter.js +57 -0
- package/dist/gs/maps/iter.js.map +1 -0
- package/dist/gs/maps/maps.d.ts +7 -0
- package/dist/gs/maps/maps.js +67 -0
- package/dist/gs/maps/maps.js.map +1 -0
- package/dist/gs/math/abs.gs.d.ts +1 -0
- package/dist/gs/math/abs.gs.js +10 -0
- package/dist/gs/math/abs.gs.js.map +1 -0
- package/dist/gs/math/acosh.gs.d.ts +2 -0
- package/dist/gs/math/acosh.gs.js +14 -0
- package/dist/gs/math/acosh.gs.js.map +1 -0
- package/dist/gs/math/asin.gs.d.ts +4 -0
- package/dist/gs/math/asin.gs.js +24 -0
- package/dist/gs/math/asin.gs.js.map +1 -0
- package/dist/gs/math/asinh.gs.d.ts +2 -0
- package/dist/gs/math/asinh.gs.js +14 -0
- package/dist/gs/math/asinh.gs.js.map +1 -0
- package/dist/gs/math/atan.gs.d.ts +4 -0
- package/dist/gs/math/atan.gs.js +22 -0
- package/dist/gs/math/atan.gs.js.map +1 -0
- package/dist/gs/math/atan2.gs.d.ts +2 -0
- package/dist/gs/math/atan2.gs.js +30 -0
- package/dist/gs/math/atan2.gs.js.map +1 -0
- package/dist/gs/math/atanh.gs.d.ts +2 -0
- package/dist/gs/math/atanh.gs.js +16 -0
- package/dist/gs/math/atanh.gs.js.map +1 -0
- package/dist/gs/math/bits.gs.d.ts +5 -0
- package/dist/gs/math/bits.gs.js +46 -0
- package/dist/gs/math/bits.gs.js.map +1 -0
- package/dist/gs/math/cbrt.gs.d.ts +2 -0
- package/dist/gs/math/cbrt.gs.js +14 -0
- package/dist/gs/math/cbrt.gs.js.map +1 -0
- package/dist/gs/math/const.gs.d.ts +30 -0
- package/dist/gs/math/const.gs.js +61 -0
- package/dist/gs/math/const.gs.js.map +1 -0
- package/dist/gs/math/copysign.gs.d.ts +1 -0
- package/dist/gs/math/copysign.gs.js +20 -0
- package/dist/gs/math/copysign.gs.js.map +1 -0
- package/dist/gs/math/dim.gs.d.ts +5 -0
- package/dist/gs/math/dim.gs.js +69 -0
- package/dist/gs/math/dim.gs.js.map +1 -0
- package/dist/gs/math/erf.gs.d.ts +4 -0
- package/dist/gs/math/erf.gs.js +336 -0
- package/dist/gs/math/erf.gs.js.map +1 -0
- package/dist/gs/math/erfinv.gs.d.ts +2 -0
- package/dist/gs/math/erfinv.gs.js +118 -0
- package/dist/gs/math/erfinv.gs.js.map +1 -0
- package/dist/gs/math/exp.gs.d.ts +5 -0
- package/dist/gs/math/exp.gs.js +30 -0
- package/dist/gs/math/exp.gs.js.map +1 -0
- package/dist/gs/math/expm1.gs.d.ts +2 -0
- package/dist/gs/math/expm1.gs.js +17 -0
- package/dist/gs/math/expm1.gs.js.map +1 -0
- package/dist/gs/math/floor.gs.d.ts +8 -0
- package/dist/gs/math/floor.gs.js +75 -0
- package/dist/gs/math/floor.gs.js.map +1 -0
- package/dist/gs/math/fma.gs.d.ts +1 -0
- package/dist/gs/math/fma.gs.js +8 -0
- package/dist/gs/math/fma.gs.js.map +1 -0
- package/dist/gs/math/frexp.gs.d.ts +2 -0
- package/dist/gs/math/frexp.gs.js +28 -0
- package/dist/gs/math/frexp.gs.js.map +1 -0
- package/dist/gs/math/gamma.gs.d.ts +3 -0
- package/dist/gs/math/gamma.gs.js +149 -0
- package/dist/gs/math/gamma.gs.js.map +1 -0
- package/dist/gs/math/hypot.gs.d.ts +2 -0
- package/dist/gs/math/hypot.gs.js +16 -0
- package/dist/gs/math/hypot.gs.js.map +1 -0
- package/dist/gs/math/index.d.ts +44 -0
- package/dist/gs/math/index.js +45 -0
- package/dist/gs/math/index.js.map +1 -0
- package/dist/gs/math/j0.gs.d.ts +4 -0
- package/dist/gs/math/j0.gs.js +228 -0
- package/dist/gs/math/j0.gs.js.map +1 -0
- package/dist/gs/math/j1.gs.d.ts +4 -0
- package/dist/gs/math/j1.gs.js +211 -0
- package/dist/gs/math/j1.gs.js.map +1 -0
- package/dist/gs/math/jn.gs.d.ts +2 -0
- package/dist/gs/math/jn.gs.js +412 -0
- package/dist/gs/math/jn.gs.js.map +1 -0
- package/dist/gs/math/ldexp.gs.d.ts +2 -0
- package/dist/gs/math/ldexp.gs.js +20 -0
- package/dist/gs/math/ldexp.gs.js.map +1 -0
- package/dist/gs/math/lgamma.gs.d.ts +2 -0
- package/dist/gs/math/lgamma.gs.js +243 -0
- package/dist/gs/math/lgamma.gs.js.map +1 -0
- package/dist/gs/math/log.gs.d.ts +2 -0
- package/dist/gs/math/log.gs.js +16 -0
- package/dist/gs/math/log.gs.js.map +1 -0
- package/dist/gs/math/log10.gs.d.ts +4 -0
- package/dist/gs/math/log10.gs.js +17 -0
- package/dist/gs/math/log10.gs.js.map +1 -0
- package/dist/gs/math/log1p.gs.d.ts +2 -0
- package/dist/gs/math/log1p.gs.js +17 -0
- package/dist/gs/math/log1p.gs.js.map +1 -0
- package/dist/gs/math/logb.gs.d.ts +3 -0
- package/dist/gs/math/logb.gs.js +43 -0
- package/dist/gs/math/logb.gs.js.map +1 -0
- package/dist/gs/math/mod.gs.d.ts +2 -0
- package/dist/gs/math/mod.gs.js +26 -0
- package/dist/gs/math/mod.gs.js.map +1 -0
- package/dist/gs/math/modf.gs.d.ts +2 -0
- package/dist/gs/math/modf.gs.js +24 -0
- package/dist/gs/math/modf.gs.js.map +1 -0
- package/dist/gs/math/nextafter.gs.d.ts +2 -0
- package/dist/gs/math/nextafter.gs.js +66 -0
- package/dist/gs/math/nextafter.gs.js.map +1 -0
- package/dist/gs/math/pow.gs.d.ts +3 -0
- package/dist/gs/math/pow.gs.js +40 -0
- package/dist/gs/math/pow.gs.js.map +1 -0
- package/dist/gs/math/pow10.gs.d.ts +1 -0
- package/dist/gs/math/pow10.gs.js +14 -0
- package/dist/gs/math/pow10.gs.js.map +1 -0
- package/dist/gs/math/remainder.gs.d.ts +2 -0
- package/dist/gs/math/remainder.gs.js +25 -0
- package/dist/gs/math/remainder.gs.js.map +1 -0
- package/dist/gs/math/signbit.gs.d.ts +1 -0
- package/dist/gs/math/signbit.gs.js +5 -0
- package/dist/gs/math/signbit.gs.js.map +1 -0
- package/dist/gs/math/sin.gs.d.ts +4 -0
- package/dist/gs/math/sin.gs.js +29 -0
- package/dist/gs/math/sin.gs.js.map +1 -0
- package/dist/gs/math/sincos.gs.d.ts +1 -0
- package/dist/gs/math/sincos.gs.js +11 -0
- package/dist/gs/math/sincos.gs.js.map +1 -0
- package/dist/gs/math/sinh.gs.d.ts +4 -0
- package/dist/gs/math/sinh.gs.js +27 -0
- package/dist/gs/math/sinh.gs.js.map +1 -0
- package/dist/gs/math/sqrt.gs.d.ts +2 -0
- package/dist/gs/math/sqrt.gs.js +15 -0
- package/dist/gs/math/sqrt.gs.js.map +1 -0
- package/dist/gs/math/tan.gs.d.ts +2 -0
- package/dist/gs/math/tan.gs.js +17 -0
- package/dist/gs/math/tan.gs.js.map +1 -0
- package/dist/gs/math/tanh.gs.d.ts +2 -0
- package/dist/gs/math/tanh.gs.js +17 -0
- package/dist/gs/math/tanh.gs.js.map +1 -0
- package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
- package/dist/gs/math/trig_reduce.gs.js +62 -0
- package/dist/gs/math/trig_reduce.gs.js.map +1 -0
- package/dist/gs/math/unsafe.gs.d.ts +4 -0
- package/dist/gs/math/unsafe.gs.js +47 -0
- package/dist/gs/math/unsafe.gs.js.map +1 -0
- package/dist/gs/strconv/atob.gs.d.ts +4 -0
- package/dist/gs/strconv/atob.gs.js +42 -0
- package/dist/gs/strconv/atob.gs.js.map +1 -0
- package/dist/gs/strconv/atof.gs.d.ts +2 -0
- package/dist/gs/strconv/atof.gs.js +51 -0
- package/dist/gs/strconv/atof.gs.js.map +1 -0
- package/dist/gs/strconv/atoi.gs.d.ts +33 -0
- package/dist/gs/strconv/atoi.gs.js +200 -0
- package/dist/gs/strconv/atoi.gs.js.map +1 -0
- package/dist/gs/strconv/doc.gs.d.ts +1 -0
- package/dist/gs/strconv/doc.gs.js +2 -0
- package/dist/gs/strconv/doc.gs.js.map +1 -0
- package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
- package/dist/gs/strconv/ftoa.gs.js +58 -0
- package/dist/gs/strconv/ftoa.gs.js.map +1 -0
- package/dist/gs/strconv/index.d.ts +6 -0
- package/dist/gs/strconv/index.js +7 -0
- package/dist/gs/strconv/index.js.map +1 -0
- package/dist/gs/strconv/itoa.gs.d.ts +6 -0
- package/dist/gs/strconv/itoa.gs.js +37 -0
- package/dist/gs/strconv/itoa.gs.js.map +1 -0
- package/dist/gs/strconv/quote.gs.d.ts +19 -0
- package/dist/gs/strconv/quote.gs.js +217 -0
- package/dist/gs/strconv/quote.gs.js.map +1 -0
- package/dist/gs/strings/index.d.ts +3 -0
- package/dist/gs/strings/index.js +4 -0
- package/dist/gs/strings/index.js.map +1 -1
- package/dist/gs/strings/replace.d.ts +0 -74
- package/dist/gs/strings/replace.js +6 -204
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/search.d.ts +0 -1
- package/dist/gs/strings/search.js +0 -21
- package/dist/gs/strings/search.js.map +1 -1
- package/dist/gs/sync/atomic/doc.gs.d.ts +28 -0
- package/dist/gs/sync/atomic/doc.gs.js +265 -0
- package/dist/gs/sync/atomic/doc.gs.js.map +1 -0
- package/dist/gs/sync/atomic/doc_64.gs.d.ts +15 -0
- package/dist/gs/sync/atomic/doc_64.gs.js +165 -0
- package/dist/gs/sync/atomic/doc_64.gs.js.map +1 -0
- package/dist/gs/sync/atomic/index.d.ts +4 -0
- package/dist/gs/sync/atomic/index.js +5 -0
- package/dist/gs/sync/atomic/index.js.map +1 -0
- package/dist/gs/sync/atomic/type.gs.d.ts +130 -0
- package/dist/gs/sync/atomic/type.gs.js +433 -0
- package/dist/gs/sync/atomic/type.gs.js.map +1 -0
- package/dist/gs/sync/atomic/value.gs.d.ts +19 -0
- package/dist/gs/sync/atomic/value.gs.js +116 -0
- package/dist/gs/sync/atomic/value.gs.js.map +1 -0
- package/dist/gs/unsafe/unsafe.d.ts +1 -0
- package/dist/gs/unsafe/unsafe.js +5 -0
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/gs/builtin/builtin.ts +9 -7
- package/gs/builtin/map.ts +5 -1
- package/gs/builtin/slice.ts +152 -24
- package/gs/github.com/pkg/errors/errors.ts +307 -0
- package/gs/github.com/pkg/errors/go113.ts +39 -0
- package/gs/github.com/pkg/errors/index.ts +3 -0
- package/gs/github.com/pkg/errors/stack.ts +127 -0
- package/gs/maps/index.ts +2 -2
- package/gs/maps/iter.ts +67 -0
- package/gs/maps/maps.ts +89 -0
- package/gs/math/TODO.md +156 -0
- package/gs/math/abs.gs.test.ts +29 -0
- package/gs/math/abs.gs.ts +13 -0
- package/gs/math/acosh.gs.test.ts +39 -0
- package/gs/math/acosh.gs.ts +21 -0
- package/gs/math/asin.gs.test.ts +66 -0
- package/gs/math/asin.gs.ts +27 -0
- package/gs/math/asinh.gs.test.ts +37 -0
- package/gs/math/asinh.gs.ts +21 -0
- package/gs/math/atan.gs.test.ts +49 -0
- package/gs/math/atan.gs.ts +27 -0
- package/gs/math/atan2.gs.test.ts +55 -0
- package/gs/math/atan2.gs.ts +37 -0
- package/gs/math/atanh.gs.test.ts +47 -0
- package/gs/math/atanh.gs.ts +21 -0
- package/gs/math/bits.gs.test.ts +88 -0
- package/gs/math/bits.gs.ts +61 -0
- package/gs/math/cbrt.gs.test.ts +57 -0
- package/gs/math/cbrt.gs.ts +20 -0
- package/gs/math/const.gs.test.ts +54 -0
- package/gs/math/const.gs.ts +93 -0
- package/gs/math/copysign.gs.test.ts +44 -0
- package/gs/math/copysign.gs.ts +27 -0
- package/gs/math/dim.gs.test.ts +102 -0
- package/gs/math/dim.gs.ts +84 -0
- package/gs/math/erf.gs.test.ts +92 -0
- package/gs/math/erf.gs.ts +409 -0
- package/gs/math/erfinv.gs.test.ts +104 -0
- package/gs/math/erfinv.gs.ts +169 -0
- package/gs/math/exp.gs.test.ts +82 -0
- package/gs/math/exp.gs.ts +39 -0
- package/gs/math/expm1.gs.test.ts +48 -0
- package/gs/math/expm1.gs.ts +23 -0
- package/gs/math/floor.gs.test.ts +146 -0
- package/gs/math/floor.gs.ts +88 -0
- package/gs/math/fma.gs.test.ts +83 -0
- package/gs/math/fma.gs.ts +7 -0
- package/gs/math/frexp.gs.test.ts +146 -0
- package/gs/math/frexp.gs.ts +37 -0
- package/gs/math/gamma.gs.test.ts +66 -0
- package/gs/math/gamma.gs.ts +158 -0
- package/gs/math/hypot.gs.test.ts +73 -0
- package/gs/math/hypot.gs.ts +23 -0
- package/gs/math/index.ts +44 -0
- package/gs/math/j0.gs.test.ts +74 -0
- package/gs/math/j0.gs.ts +257 -0
- package/gs/math/j1.gs.test.ts +81 -0
- package/gs/math/j1.gs.ts +231 -0
- package/gs/math/jn.gs.test.ts +133 -0
- package/gs/math/jn.gs.ts +447 -0
- package/gs/math/ldexp.gs.test.ts +128 -0
- package/gs/math/ldexp.gs.ts +28 -0
- package/gs/math/lgamma.gs.test.ts +102 -0
- package/gs/math/lgamma.gs.ts +251 -0
- package/gs/math/log.gs.test.ts +40 -0
- package/gs/math/log.gs.ts +21 -0
- package/gs/math/log10.gs.test.ts +80 -0
- package/gs/math/log10.gs.ts +25 -0
- package/gs/math/log1p.gs.test.ts +55 -0
- package/gs/math/log1p.gs.ts +24 -0
- package/gs/math/logb.gs.test.ts +87 -0
- package/gs/math/logb.gs.ts +54 -0
- package/gs/math/mod.gs.test.ts +64 -0
- package/gs/math/mod.gs.ts +36 -0
- package/gs/math/modf.gs.test.ts +80 -0
- package/gs/math/modf.gs.ts +32 -0
- package/gs/math/nextafter.gs.test.ts +107 -0
- package/gs/math/nextafter.gs.ts +71 -0
- package/gs/math/pow.gs.test.ts +103 -0
- package/gs/math/pow.gs.ts +55 -0
- package/gs/math/pow10.gs.test.ts +58 -0
- package/gs/math/pow10.gs.ts +19 -0
- package/gs/math/remainder.gs.test.ts +70 -0
- package/gs/math/remainder.gs.ts +33 -0
- package/gs/math/signbit.gs.test.ts +33 -0
- package/gs/math/signbit.gs.ts +8 -0
- package/gs/math/sin.gs.test.ts +83 -0
- package/gs/math/sin.gs.ts +38 -0
- package/gs/math/sincos.gs.test.ts +91 -0
- package/gs/math/sincos.gs.ts +15 -0
- package/gs/math/sinh.gs.test.ts +66 -0
- package/gs/math/sinh.gs.ts +34 -0
- package/gs/math/sqrt.gs.test.ts +49 -0
- package/gs/math/sqrt.gs.ts +20 -0
- package/gs/math/tan.gs.test.ts +50 -0
- package/gs/math/tan.gs.ts +23 -0
- package/gs/math/tanh.gs.test.ts +52 -0
- package/gs/math/tanh.gs.ts +23 -0
- package/gs/math/trig_reduce.gs.ts +66 -0
- package/gs/math/unsafe.gs.ts +52 -0
- package/gs/strconv/atob.gs.ts +45 -0
- package/gs/strconv/atof.gs.ts +60 -0
- package/gs/strconv/atoi.gs.ts +243 -0
- package/gs/strconv/doc.gs.ts +2 -0
- package/gs/strconv/ftoa.gs.ts +66 -0
- package/gs/strconv/index.ts +6 -0
- package/gs/strconv/itoa.gs.ts +41 -0
- package/gs/strconv/quote.gs.ts +245 -0
- package/gs/strings/index.ts +4 -0
- package/gs/strings/replace.ts +9 -237
- package/gs/strings/search.ts +0 -28
- package/gs/sync/atomic/doc.gs.ts +276 -0
- package/gs/sync/atomic/doc_64.gs.ts +168 -0
- package/gs/sync/atomic/index.ts +4 -0
- package/gs/sync/atomic/type.gs.ts +596 -0
- package/gs/sync/atomic/value.gs.ts +158 -0
- package/gs/unsafe/unsafe.ts +6 -0
- package/package.json +1 -1
- package/gs/maps/iter.gs.ts +0 -71
- package/gs/maps/maps.gs.ts +0 -87
- package/gs/stringslite/godoc.txt +0 -17
- package/gs/stringslite/index.ts +0 -1
- 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,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,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
|