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,243 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { Abs } from "./abs.gs.js";
|
|
3
|
+
import { Inf, IsInf, IsNaN } from "./bits.gs.js";
|
|
4
|
+
import { Floor } from "./floor.gs.js";
|
|
5
|
+
import { Log } from "./log.gs.js";
|
|
6
|
+
import { Mod } from "./mod.gs.js";
|
|
7
|
+
import { Cos, Sin } from "./sin.gs.js";
|
|
8
|
+
import { Float64bits } from "./unsafe.gs.js";
|
|
9
|
+
let _lgamA = $.arrayToSlice([7.72156649015328655494e-02, 3.22467033424113591611e-01, 6.73523010531292681824e-02, 2.05808084325167332806e-02, 7.38555086081402883957e-03, 2.89051383673415629091e-03, 1.19270763183362067845e-03, 5.10069792153511336608e-04, 2.20862790713908385557e-04, 1.08011567247583939954e-04, 2.52144565451257326939e-05, 4.48640949618915160150e-05]);
|
|
10
|
+
let _lgamR = $.arrayToSlice([1.0, 1.39200533467621045958e+00, 7.21935547567138069525e-01, 1.71933865632803078993e-01, 1.86459191715652901344e-02, 7.77942496381893596434e-04, 7.32668430744625636189e-06]);
|
|
11
|
+
let _lgamS = $.arrayToSlice([-7.72156649015328655494e-02, 2.14982415960608852501e-01, 3.25778796408930981787e-01, 1.46350472652464452805e-01, 2.66422703033638609560e-02, 1.84028451407337715652e-03, 3.19475326584100867617e-05]);
|
|
12
|
+
let _lgamT = $.arrayToSlice([4.83836122723810047042e-01, -1.47587722994593911752e-01, 6.46249402391333854778e-02, -3.27885410759859649565e-02, 1.79706750811820387126e-02, -1.03142241298341437450e-02, 6.10053870246291332635e-03, -3.68452016781138256760e-03, 2.25964780900612472250e-03, -1.40346469989232843813e-03, 8.81081882437654011382e-04, -5.38595305356740546715e-04, 3.15632070903625950361e-04, -3.12754168375120860518e-04, 3.35529192635519073543e-04]);
|
|
13
|
+
let _lgamU = $.arrayToSlice([-7.72156649015328655494e-02, 6.32827064025093366517e-01, 1.45492250137234768737e+00, 9.77717527963372745603e-01, 2.28963728064692451092e-01, 1.33810918536787660377e-02]);
|
|
14
|
+
let _lgamV = $.arrayToSlice([1.0, 2.45597793713041134822e+00, 2.12848976379893395361e+00, 7.69285150456672783825e-01, 1.04222645593369134254e-01, 3.21709242282423911810e-03]);
|
|
15
|
+
let _lgamW = $.arrayToSlice([4.18938533204672725052e-01, 8.33333333333329678849e-02, -2.77777777728775536470e-03, 7.93650558643019558500e-04, -5.95187557450339963135e-04, 8.36339918996282139126e-04, -1.63092934096575273989e-03]);
|
|
16
|
+
// Lgamma returns the natural logarithm and sign (-1 or +1) of [Gamma](x).
|
|
17
|
+
//
|
|
18
|
+
// Special cases are:
|
|
19
|
+
//
|
|
20
|
+
// Lgamma(+Inf) = +Inf
|
|
21
|
+
// Lgamma(0) = +Inf
|
|
22
|
+
// Lgamma(-integer) = +Inf
|
|
23
|
+
// Lgamma(-Inf) = -Inf
|
|
24
|
+
// Lgamma(NaN) = NaN
|
|
25
|
+
export function Lgamma(x) {
|
|
26
|
+
let lgamma = 0;
|
|
27
|
+
let sign = 1;
|
|
28
|
+
// Constants
|
|
29
|
+
const Ymin = 1.461632144968362245;
|
|
30
|
+
const Two52 = (1 << 52);
|
|
31
|
+
const Two53 = (1 << 53);
|
|
32
|
+
const Two58 = (1 << 58);
|
|
33
|
+
const Tiny = 1.0 / ((1 << 70));
|
|
34
|
+
const Tc = 1.46163214496836224576e+00;
|
|
35
|
+
const Tf = -1.21486290535849611461e-01;
|
|
36
|
+
const Tt = -3.63867699703950536541e-18;
|
|
37
|
+
// special cases
|
|
38
|
+
if (IsNaN(x)) {
|
|
39
|
+
lgamma = x;
|
|
40
|
+
return [lgamma, sign];
|
|
41
|
+
}
|
|
42
|
+
if (IsInf(x, 0)) {
|
|
43
|
+
lgamma = x;
|
|
44
|
+
return [lgamma, sign];
|
|
45
|
+
}
|
|
46
|
+
if (x == 0) {
|
|
47
|
+
lgamma = Inf(1);
|
|
48
|
+
return [lgamma, sign];
|
|
49
|
+
}
|
|
50
|
+
let neg = false;
|
|
51
|
+
if (x < 0) {
|
|
52
|
+
x = -x;
|
|
53
|
+
neg = true;
|
|
54
|
+
}
|
|
55
|
+
// if |x| < 2**-70, return -log(|x|)
|
|
56
|
+
if (x < 8.47033e-22) {
|
|
57
|
+
if (neg) {
|
|
58
|
+
sign = -1;
|
|
59
|
+
}
|
|
60
|
+
lgamma = -Log(x);
|
|
61
|
+
return [lgamma, sign];
|
|
62
|
+
}
|
|
63
|
+
let nadj = 0;
|
|
64
|
+
// Handle negative values
|
|
65
|
+
if (neg) {
|
|
66
|
+
// |x| >= 2**52, must be -integer
|
|
67
|
+
if (x >= 4503599627370496) {
|
|
68
|
+
lgamma = Inf(1);
|
|
69
|
+
return [lgamma, sign];
|
|
70
|
+
}
|
|
71
|
+
let t = sinPi(x);
|
|
72
|
+
// -integer
|
|
73
|
+
if (t == 0) {
|
|
74
|
+
lgamma = Inf(1);
|
|
75
|
+
return [lgamma, sign];
|
|
76
|
+
}
|
|
77
|
+
nadj = Log(3.14159 / Abs(t * x));
|
|
78
|
+
if (t < 0) {
|
|
79
|
+
sign = -1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Main computation
|
|
83
|
+
if (x == 1 || x == 2) {
|
|
84
|
+
lgamma = 0;
|
|
85
|
+
}
|
|
86
|
+
else if (x < 2) {
|
|
87
|
+
let y = 0;
|
|
88
|
+
let i = 0;
|
|
89
|
+
if (x <= 0.9) {
|
|
90
|
+
lgamma = -Log(x);
|
|
91
|
+
if (x >= (1.46163 - 1 + 0.27)) {
|
|
92
|
+
y = 1 - x;
|
|
93
|
+
i = 0;
|
|
94
|
+
}
|
|
95
|
+
else if (x >= (1.46163 - 1 - 0.27)) {
|
|
96
|
+
y = x - (1.46163 - 1);
|
|
97
|
+
i = 1;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
y = x;
|
|
101
|
+
i = 2;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
lgamma = 0;
|
|
106
|
+
if (x >= (1.46163 + 0.27)) {
|
|
107
|
+
y = 2 - x;
|
|
108
|
+
i = 0;
|
|
109
|
+
}
|
|
110
|
+
else if (x >= (1.46163 - 0.27)) {
|
|
111
|
+
y = x - 1.46163;
|
|
112
|
+
i = 1;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
y = x - 1;
|
|
116
|
+
i = 2;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (i === 0) {
|
|
120
|
+
let z = y * y;
|
|
121
|
+
let p1 = _lgamA[0] + z * (_lgamA[2] + z * (_lgamA[4] + z * (_lgamA[6] + z * (_lgamA[8] + z * _lgamA[10]))));
|
|
122
|
+
let p2 = z * (_lgamA[1] + z * (+_lgamA[3] + z * (_lgamA[5] + z * (_lgamA[7] + z * (_lgamA[9] + z * _lgamA[11])))));
|
|
123
|
+
let p = y * p1 + p2;
|
|
124
|
+
lgamma += (p - 0.5 * y);
|
|
125
|
+
}
|
|
126
|
+
else if (i === 1) {
|
|
127
|
+
let z = y * y;
|
|
128
|
+
let w = z * y;
|
|
129
|
+
let p1 = _lgamT[0] + w * (_lgamT[3] + w * (_lgamT[6] + w * (_lgamT[9] + w * _lgamT[12])));
|
|
130
|
+
let p2 = _lgamT[1] + w * (_lgamT[4] + w * (_lgamT[7] + w * (_lgamT[10] + w * _lgamT[13])));
|
|
131
|
+
let p3 = _lgamT[2] + w * (_lgamT[5] + w * (_lgamT[8] + w * (_lgamT[11] + w * _lgamT[14])));
|
|
132
|
+
let p = z * p1 - (-3.63868e-18 - w * (p2 + y * p3));
|
|
133
|
+
lgamma += (-0.121486 + p);
|
|
134
|
+
}
|
|
135
|
+
else { // i === 2
|
|
136
|
+
let p1 = y * (_lgamU[0] + y * (_lgamU[1] + y * (_lgamU[2] + y * (_lgamU[3] + y * (_lgamU[4] + y * _lgamU[5])))));
|
|
137
|
+
let p2 = 1 + y * (_lgamV[1] + y * (_lgamV[2] + y * (_lgamV[3] + y * (_lgamV[4] + y * _lgamV[5]))));
|
|
138
|
+
lgamma += (-0.5 * y + p1 / p2);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (x < 8) {
|
|
142
|
+
let i = $.int(x);
|
|
143
|
+
let y = x - i;
|
|
144
|
+
let p = y * (_lgamS[0] + y * (_lgamS[1] + y * (_lgamS[2] + y * (_lgamS[3] + y * (_lgamS[4] + y * (_lgamS[5] + y * _lgamS[6]))))));
|
|
145
|
+
let q = 1 + y * (_lgamR[1] + y * (_lgamR[2] + y * (_lgamR[3] + y * (_lgamR[4] + y * (_lgamR[5] + y * _lgamR[6])))));
|
|
146
|
+
lgamma = 0.5 * y + p / q;
|
|
147
|
+
let z = 1.0;
|
|
148
|
+
// Handle fallthrough cases properly
|
|
149
|
+
if (i === 7) {
|
|
150
|
+
z *= (y + 6);
|
|
151
|
+
z *= (y + 5);
|
|
152
|
+
z *= (y + 4);
|
|
153
|
+
z *= (y + 3);
|
|
154
|
+
z *= (y + 2);
|
|
155
|
+
lgamma += Log(z);
|
|
156
|
+
}
|
|
157
|
+
else if (i === 6) {
|
|
158
|
+
z *= (y + 5);
|
|
159
|
+
z *= (y + 4);
|
|
160
|
+
z *= (y + 3);
|
|
161
|
+
z *= (y + 2);
|
|
162
|
+
lgamma += Log(z);
|
|
163
|
+
}
|
|
164
|
+
else if (i === 5) {
|
|
165
|
+
z *= (y + 4);
|
|
166
|
+
z *= (y + 3);
|
|
167
|
+
z *= (y + 2);
|
|
168
|
+
lgamma += Log(z);
|
|
169
|
+
}
|
|
170
|
+
else if (i === 4) {
|
|
171
|
+
z *= (y + 3);
|
|
172
|
+
z *= (y + 2);
|
|
173
|
+
lgamma += Log(z);
|
|
174
|
+
}
|
|
175
|
+
else if (i === 3) {
|
|
176
|
+
z *= (y + 2);
|
|
177
|
+
lgamma += Log(z);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (x < 288230376151711744) {
|
|
181
|
+
let t = Log(x);
|
|
182
|
+
let z = 1 / x;
|
|
183
|
+
let y = z * z;
|
|
184
|
+
let w = _lgamW[0] + z * (_lgamW[1] + y * (_lgamW[2] + y * (_lgamW[3] + y * (_lgamW[4] + y * (_lgamW[5] + y * _lgamW[6])))));
|
|
185
|
+
lgamma = (x - 0.5) * (t - 1) + w;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
lgamma = x * (Log(x) - 1);
|
|
189
|
+
}
|
|
190
|
+
if (neg) {
|
|
191
|
+
lgamma = nadj - lgamma;
|
|
192
|
+
}
|
|
193
|
+
return [lgamma, sign];
|
|
194
|
+
}
|
|
195
|
+
// sinPi(x) is a helper function for negative x
|
|
196
|
+
export function sinPi(x) {
|
|
197
|
+
const Two52 = (1 << 52);
|
|
198
|
+
const Two53 = (1 << 53);
|
|
199
|
+
if (x < 0.25) {
|
|
200
|
+
return -Sin(3.14159 * x);
|
|
201
|
+
}
|
|
202
|
+
// argument reduction
|
|
203
|
+
let z = Floor(x);
|
|
204
|
+
let n = 0;
|
|
205
|
+
if (z != x) {
|
|
206
|
+
// inexact
|
|
207
|
+
x = Mod(x, 2);
|
|
208
|
+
n = $.int(x * 4);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
// exact
|
|
212
|
+
if (x >= 9007199254740992) {
|
|
213
|
+
// x must be even
|
|
214
|
+
x = 0;
|
|
215
|
+
n = 0;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
if (x < 4503599627370496) {
|
|
219
|
+
z = x + 4503599627370496; // exact
|
|
220
|
+
}
|
|
221
|
+
n = $.int((1 & Float64bits(z)));
|
|
222
|
+
x = n;
|
|
223
|
+
n <<= 2;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (n === 0) {
|
|
227
|
+
x = Sin(3.14159 * x);
|
|
228
|
+
}
|
|
229
|
+
else if (n === 1 || n === 2) {
|
|
230
|
+
x = Cos(3.14159 * (0.5 - x));
|
|
231
|
+
}
|
|
232
|
+
else if (n === 3 || n === 4) {
|
|
233
|
+
x = Sin(3.14159 * (1 - x));
|
|
234
|
+
}
|
|
235
|
+
else if (n === 5 || n === 6) {
|
|
236
|
+
x = -Cos(3.14159 * (x - 1.5));
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
x = Sin(3.14159 * (x - 2));
|
|
240
|
+
}
|
|
241
|
+
return -x;
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=lgamma.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lgamma.gs.js","sourceRoot":"","sources":["../../../gs/math/lgamma.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// archLog import removed - using optimized implementation
|
|
2
|
+
// Log returns the natural logarithm of x.
|
|
3
|
+
//
|
|
4
|
+
// Special cases are:
|
|
5
|
+
//
|
|
6
|
+
// Log(+Inf) = +Inf
|
|
7
|
+
// Log(0) = -Inf
|
|
8
|
+
// Log(x < 0) = NaN
|
|
9
|
+
// Log(NaN) = NaN
|
|
10
|
+
export function Log(x) {
|
|
11
|
+
return Math.log(x);
|
|
12
|
+
}
|
|
13
|
+
export function log(x) {
|
|
14
|
+
return Math.log(x);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=log.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.gs.js","sourceRoot":"","sources":["../../../gs/math/log.gs.ts"],"names":[],"mappings":"AAGA,0DAA0D;AAE1D,0CAA0C;AAC1C,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,iBAAiB;AACjB,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Log10 returns the decimal logarithm of x.
|
|
2
|
+
// The special cases are the same as for [Log].
|
|
3
|
+
export function Log10(x) {
|
|
4
|
+
return Math.log10(x);
|
|
5
|
+
}
|
|
6
|
+
export function log10(x) {
|
|
7
|
+
return Math.log10(x);
|
|
8
|
+
}
|
|
9
|
+
// Log2 returns the binary logarithm of x.
|
|
10
|
+
// The special cases are the same as for [Log].
|
|
11
|
+
export function Log2(x) {
|
|
12
|
+
return Math.log2(x);
|
|
13
|
+
}
|
|
14
|
+
export function log2(x) {
|
|
15
|
+
return Math.log2(x);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=log10.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log10.gs.js","sourceRoot":"","sources":["../../../gs/math/log10.gs.ts"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C,+CAA+C;AAC/C,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,0CAA0C;AAC1C,+CAA+C;AAC/C,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Log1p returns the natural logarithm of 1 plus its argument x.
|
|
2
|
+
// It is more accurate than [Log](1 + x) when x is near zero.
|
|
3
|
+
//
|
|
4
|
+
// Special cases are:
|
|
5
|
+
//
|
|
6
|
+
// Log1p(+Inf) = +Inf
|
|
7
|
+
// Log1p(±0) = ±0
|
|
8
|
+
// Log1p(-1) = -Inf
|
|
9
|
+
// Log1p(x < -1) = NaN
|
|
10
|
+
// Log1p(NaN) = NaN
|
|
11
|
+
export function Log1p(x) {
|
|
12
|
+
return Math.log1p(x);
|
|
13
|
+
}
|
|
14
|
+
export function log1p(x) {
|
|
15
|
+
return Math.log1p(x);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=log1p.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log1p.gs.js","sourceRoot":"","sources":["../../../gs/math/log1p.gs.ts"],"names":[],"mappings":"AAMA,gEAAgE;AAChE,6DAA6D;AAC7D,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,qBAAqB;AACrB,iBAAiB;AACjB,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB;AACnB,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Logb returns the binary exponent of x.
|
|
2
|
+
//
|
|
3
|
+
// Special cases are:
|
|
4
|
+
//
|
|
5
|
+
// Logb(±Inf) = +Inf
|
|
6
|
+
// Logb(0) = -Inf
|
|
7
|
+
// Logb(NaN) = NaN
|
|
8
|
+
export function Logb(x) {
|
|
9
|
+
// Handle special cases
|
|
10
|
+
if (x === 0) {
|
|
11
|
+
return Number.NEGATIVE_INFINITY;
|
|
12
|
+
}
|
|
13
|
+
if (!Number.isFinite(x)) {
|
|
14
|
+
return Number.POSITIVE_INFINITY;
|
|
15
|
+
}
|
|
16
|
+
if (Number.isNaN(x)) {
|
|
17
|
+
return x;
|
|
18
|
+
}
|
|
19
|
+
return Math.floor(Math.log2(Math.abs(x)));
|
|
20
|
+
}
|
|
21
|
+
// Ilogb returns the binary exponent of x as an integer.
|
|
22
|
+
//
|
|
23
|
+
// Special cases are:
|
|
24
|
+
//
|
|
25
|
+
// Ilogb(±Inf) = MaxInt32
|
|
26
|
+
// Ilogb(0) = MinInt32
|
|
27
|
+
// Ilogb(NaN) = MaxInt32
|
|
28
|
+
export function Ilogb(x) {
|
|
29
|
+
// Handle special cases
|
|
30
|
+
if (x === 0) {
|
|
31
|
+
return -2147483648; // MinInt32
|
|
32
|
+
}
|
|
33
|
+
if (Number.isNaN(x) || !Number.isFinite(x)) {
|
|
34
|
+
return 2147483647; // MaxInt32
|
|
35
|
+
}
|
|
36
|
+
return Math.floor(Math.log2(Math.abs(x)));
|
|
37
|
+
}
|
|
38
|
+
// ilogb returns the binary exponent of x. It assumes x is finite and
|
|
39
|
+
// non-zero.
|
|
40
|
+
export function ilogb(x) {
|
|
41
|
+
return Math.floor(Math.log2(Math.abs(x)));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=logb.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logb.gs.js","sourceRoot":"","sources":["../../../gs/math/logb.gs.ts"],"names":[],"mappings":"AAIA,yCAAyC;AACzC,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,oBAAoB;AACpB,iBAAiB;AACjB,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,uBAAuB;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,iBAAiB,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,iBAAiB,CAAA;IAChC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAA;IACT,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,wDAAwD;AACxD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,yBAAyB;AACzB,sBAAsB;AACtB,wBAAwB;AACxB,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,uBAAuB;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,UAAU,CAAA,CAAC,WAAW;IAC/B,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAA,CAAC,WAAW;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,qEAAqE;AACrE,YAAY;AACZ,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Mod returns the floating-point remainder of x/y.
|
|
2
|
+
// The magnitude of the result is less than y and its
|
|
3
|
+
// sign agrees with that of x.
|
|
4
|
+
//
|
|
5
|
+
// Special cases are:
|
|
6
|
+
//
|
|
7
|
+
// Mod(±Inf, y) = NaN
|
|
8
|
+
// Mod(NaN, y) = NaN
|
|
9
|
+
// Mod(x, 0) = NaN
|
|
10
|
+
// Mod(x, ±Inf) = x
|
|
11
|
+
// Mod(x, NaN) = NaN
|
|
12
|
+
export function Mod(x, y) {
|
|
13
|
+
return mod(x, y);
|
|
14
|
+
}
|
|
15
|
+
export function mod(x, y) {
|
|
16
|
+
// Handle special cases
|
|
17
|
+
if (y === 0 || !Number.isFinite(x) || Number.isNaN(x) || Number.isNaN(y)) {
|
|
18
|
+
return Number.NaN;
|
|
19
|
+
}
|
|
20
|
+
if (!Number.isFinite(y)) {
|
|
21
|
+
return x;
|
|
22
|
+
}
|
|
23
|
+
// JavaScript's % operator already implements the correct behavior for Mod
|
|
24
|
+
return x % y;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=mod.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.gs.js","sourceRoot":"","sources":["../../../gs/math/mod.gs.ts"],"names":[],"mappings":"AAOA,mDAAmD;AACnD,qDAAqD;AACrD,8BAA8B;AAC9B,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,qBAAqB;AACrB,oBAAoB;AACpB,kBAAkB;AAClB,mBAAmB;AACnB,oBAAoB;AACpB,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,uBAAuB;IACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC,GAAG,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAA;IACT,CAAC;IAED,0EAA0E;IAC1E,OAAO,CAAC,GAAG,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Modf returns integer and fractional floating-point numbers
|
|
2
|
+
// that sum to f. Both values have the same sign as f.
|
|
3
|
+
//
|
|
4
|
+
// Special cases are:
|
|
5
|
+
//
|
|
6
|
+
// Modf(±Inf) = ±Inf, NaN
|
|
7
|
+
// Modf(NaN) = NaN, NaN
|
|
8
|
+
export function Modf(f) {
|
|
9
|
+
return modf(f);
|
|
10
|
+
}
|
|
11
|
+
export function modf(f) {
|
|
12
|
+
// Handle special cases
|
|
13
|
+
if (Number.isNaN(f)) {
|
|
14
|
+
return [Number.NaN, Number.NaN];
|
|
15
|
+
}
|
|
16
|
+
if (!Number.isFinite(f)) {
|
|
17
|
+
return [f, Number.NaN];
|
|
18
|
+
}
|
|
19
|
+
// Get integer part using Math.trunc (preserves sign)
|
|
20
|
+
const intPart = Math.trunc(f);
|
|
21
|
+
const fracPart = f - intPart;
|
|
22
|
+
return [intPart, fracPart];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=modf.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modf.gs.js","sourceRoot":"","sources":["../../../gs/math/modf.gs.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,sDAAsD;AACtD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,yBAAyB;AACzB,uBAAuB;AACvB,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,uBAAuB;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAA;IAE5B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { IsNaN, NaN } from "./bits.gs.js";
|
|
2
|
+
import { Copysign } from "./copysign.gs.js";
|
|
3
|
+
import { Float32bits, Float32frombits, Float64bits, Float64frombits } from "./unsafe.gs.js";
|
|
4
|
+
// Nextafter32 returns the next representable float32 value after x towards y.
|
|
5
|
+
//
|
|
6
|
+
// Special cases are:
|
|
7
|
+
//
|
|
8
|
+
// Nextafter32(x, x) = x
|
|
9
|
+
// Nextafter32(NaN, y) = NaN
|
|
10
|
+
// Nextafter32(x, NaN) = NaN
|
|
11
|
+
export function Nextafter32(x, y) {
|
|
12
|
+
let r = 0;
|
|
13
|
+
{
|
|
14
|
+
// special case
|
|
15
|
+
switch (true) {
|
|
16
|
+
case IsNaN(x) || IsNaN(y):
|
|
17
|
+
r = NaN();
|
|
18
|
+
break;
|
|
19
|
+
case x == y:
|
|
20
|
+
r = x;
|
|
21
|
+
break;
|
|
22
|
+
case x == 0:
|
|
23
|
+
r = Copysign(Float32frombits(1), y);
|
|
24
|
+
break;
|
|
25
|
+
case (y > x) == (x > 0):
|
|
26
|
+
r = Float32frombits(Float32bits(x) + 1);
|
|
27
|
+
break;
|
|
28
|
+
default:
|
|
29
|
+
r = Float32frombits(Float32bits(x) - 1);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
return r;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Nextafter returns the next representable float64 value after x towards y.
|
|
36
|
+
//
|
|
37
|
+
// Special cases are:
|
|
38
|
+
//
|
|
39
|
+
// Nextafter(x, x) = x
|
|
40
|
+
// Nextafter(NaN, y) = NaN
|
|
41
|
+
// Nextafter(x, NaN) = NaN
|
|
42
|
+
export function Nextafter(x, y) {
|
|
43
|
+
let r = 0;
|
|
44
|
+
{
|
|
45
|
+
// special case
|
|
46
|
+
switch (true) {
|
|
47
|
+
case IsNaN(x) || IsNaN(y):
|
|
48
|
+
r = NaN();
|
|
49
|
+
break;
|
|
50
|
+
case x == y:
|
|
51
|
+
r = x;
|
|
52
|
+
break;
|
|
53
|
+
case x == 0:
|
|
54
|
+
r = Copysign(Float64frombits(1), y);
|
|
55
|
+
break;
|
|
56
|
+
case (y > x) == (x > 0):
|
|
57
|
+
r = Float64frombits(Float64bits(x) + 1);
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
r = Float64frombits(Float64bits(x) - 1);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
return r;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=nextafter.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextafter.gs.js","sourceRoot":"","sources":["../../../gs/math/nextafter.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5F,8EAA8E;AAC9E,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC/C,IAAI,CAAC,GAAW,CAAC,CAAA;IACjB,CAAC;QAEA,eAAe;QACf,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,KAAK,CAAE,CAAY,CAAC,IAAI,KAAK,CAAE,CAAY,CAAC;gBAChD,CAAC,GAAI,GAAG,EAAa,CAAA;gBACrB,MAAK;YACN,KAAK,CAAC,IAAI,CAAC;gBACV,CAAC,GAAG,CAAC,CAAA;gBACL,MAAK;YACN,KAAK,CAAC,IAAI,CAAC;gBACV,CAAC,GAAI,QAAQ,CAAE,eAAe,CAAC,CAAC,CAAY,EAAG,CAAY,CAAY,CAAA;gBACvE,MAAK;YACN,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,MAAK;YACN;gBACC,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,MAAK;QACP,CAAC;QACD,OAAO,CAAC,CAAA;IACT,CAAC;AACF,CAAC;AAED,4EAA4E;AAC5E,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,wBAAwB;AACxB,0BAA0B;AAC1B,0BAA0B;AAC1B,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC7C,IAAI,CAAC,GAAW,CAAC,CAAA;IACjB,CAAC;QAEA,eAAe;QACf,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;gBACxB,CAAC,GAAG,GAAG,EAAE,CAAA;gBACT,MAAK;YACN,KAAK,CAAC,IAAI,CAAC;gBACV,CAAC,GAAG,CAAC,CAAA;gBACL,MAAK;YACN,KAAK,CAAC,IAAI,CAAC;gBACV,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACnC,MAAK;YACN,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,MAAK;YACN;gBACC,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,MAAK;QACP,CAAC;QACD,OAAO,CAAC,CAAA;IACT,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function isOddInt(x) {
|
|
2
|
+
// 1 << 53 is the largest exact integer in the float64 format.
|
|
3
|
+
if (Math.abs(x) >= (1 << 53)) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
const truncated = Math.trunc(x);
|
|
7
|
+
const fractional = x - truncated;
|
|
8
|
+
return fractional === 0 && (truncated & 1) === 1;
|
|
9
|
+
}
|
|
10
|
+
// Pow returns x**y, the base-x exponential of y.
|
|
11
|
+
//
|
|
12
|
+
// Special cases are (in order):
|
|
13
|
+
//
|
|
14
|
+
// Pow(x, ±0) = 1 for any x
|
|
15
|
+
// Pow(1, y) = 1 for any y
|
|
16
|
+
// Pow(x, 1) = x for any x
|
|
17
|
+
// Pow(NaN, y) = NaN
|
|
18
|
+
// Pow(x, NaN) = NaN
|
|
19
|
+
// Pow(±0, y) = ±Inf for y an odd integer < 0
|
|
20
|
+
// Pow(±0, -Inf) = +Inf
|
|
21
|
+
// Pow(±0, +Inf) = +0
|
|
22
|
+
// Pow(±0, y) = +Inf for finite y < 0 and not an odd integer
|
|
23
|
+
// Pow(±0, y) = ±0 for y an odd integer > 0
|
|
24
|
+
// Pow(±0, y) = +0 for finite y > 0 and not an odd integer
|
|
25
|
+
// Pow(-1, ±Inf) = 1
|
|
26
|
+
// Pow(x, +Inf) = +Inf for |x| > 1
|
|
27
|
+
// Pow(x, -Inf) = +0 for |x| > 1
|
|
28
|
+
// Pow(x, +Inf) = +0 for |x| < 1
|
|
29
|
+
// Pow(x, -Inf) = +Inf for |x| < 1
|
|
30
|
+
// Pow(+Inf, y) = +Inf for y > 0
|
|
31
|
+
// Pow(+Inf, y) = +0 for y < 0
|
|
32
|
+
// Pow(-Inf, y) = Pow(-0, -y)
|
|
33
|
+
// Pow(x, y) = NaN for finite x < 0 and finite non-integer y
|
|
34
|
+
export function Pow(x, y) {
|
|
35
|
+
return Math.pow(x, y);
|
|
36
|
+
}
|
|
37
|
+
export function pow(x, y) {
|
|
38
|
+
return Math.pow(x, y);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=pow.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pow.gs.js","sourceRoot":"","sources":["../../../gs/math/pow.gs.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,QAAQ,CAAC,CAAS;IACjC,8DAA8D;IAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAA;IAChC,OAAO,UAAU,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AACjD,CAAC;AAED,iDAAiD;AACjD,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,2BAA2B;AAC3B,0BAA0B;AAC1B,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,6CAA6C;AAC7C,uBAAuB;AACvB,qBAAqB;AACrB,4DAA4D;AAC5D,2CAA2C;AAC3C,0DAA0D;AAC1D,oBAAoB;AACpB,kCAAkC;AAClC,gCAAgC;AAChC,gCAAgC;AAChC,kCAAkC;AAClC,gCAAgC;AAChC,8BAA8B;AAC9B,6BAA6B;AAC7B,4DAA4D;AAC5D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Pow10(n: number): number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
let pow10tab = $.arrayToSlice([1e00, 1e01, 1e02, 1e03, 1e04, 1e05, 1e06, 1e07, 1e08, 1e09, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, 1e31]);
|
|
3
|
+
let pow10postab32 = $.arrayToSlice([1e00, 1e32, 1e64, 1e96, 1e128, 1e160, 1e192, 1e224, 1e256, 1e288]);
|
|
4
|
+
let pow10negtab32 = $.arrayToSlice([1e-00, 1e-32, 1e-64, 1e-96, 1e-128, 1e-160, 1e-192, 1e-224, 1e-256, 1e-288, 1e-320]);
|
|
5
|
+
// Pow10 returns 10**n, the base-10 exponential of n.
|
|
6
|
+
//
|
|
7
|
+
// Special cases are:
|
|
8
|
+
//
|
|
9
|
+
// Pow10(n) = 0 for n < -323
|
|
10
|
+
// Pow10(n) = +Inf for n > 308
|
|
11
|
+
export function Pow10(n) {
|
|
12
|
+
return Math.pow(10, n);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=pow10.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pow10.gs.js","sourceRoot":"","sources":["../../../gs/math/pow10.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAGlD,IAAI,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEvO,IAAI,aAAa,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAE9G,IAAI,aAAa,GAAG,CAAC,CAAC,YAAY,CAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhI,qDAAqD;AACrD,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,+BAA+B;AAC/B,8BAA8B;AAC9B,MAAM,UAAU,KAAK,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AACvB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Remainder returns the IEEE 754 floating-point remainder of x/y.
|
|
2
|
+
//
|
|
3
|
+
// Special cases are:
|
|
4
|
+
//
|
|
5
|
+
// Remainder(±Inf, y) = NaN
|
|
6
|
+
// Remainder(NaN, y) = NaN
|
|
7
|
+
// Remainder(x, 0) = NaN
|
|
8
|
+
// Remainder(x, ±Inf) = x
|
|
9
|
+
// Remainder(x, NaN) = NaN
|
|
10
|
+
export function Remainder(x, y) {
|
|
11
|
+
return remainder(x, y);
|
|
12
|
+
}
|
|
13
|
+
export function remainder(x, y) {
|
|
14
|
+
// Handle special cases
|
|
15
|
+
if (Number.isNaN(x) || Number.isNaN(y) || !Number.isFinite(x) || y === 0) {
|
|
16
|
+
return Number.NaN;
|
|
17
|
+
}
|
|
18
|
+
if (!Number.isFinite(y)) {
|
|
19
|
+
return x;
|
|
20
|
+
}
|
|
21
|
+
// IEEE 754 remainder: x - n*y where n is the integer nearest to x/y
|
|
22
|
+
const n = Math.round(x / y);
|
|
23
|
+
return x - n * y;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=remainder.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remainder.gs.js","sourceRoot":"","sources":["../../../gs/math/remainder.gs.ts"],"names":[],"mappings":"AAKA,kEAAkE;AAClE,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,2BAA2B;AAC3B,0BAA0B;AAC1B,wBAAwB;AACxB,yBAAyB;AACzB,0BAA0B;AAC1B,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC7C,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC7C,uBAAuB;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC,GAAG,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAA;IACT,CAAC;IAED,oEAAoE;IACpE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC"}
|