From 1eb4503f131be6e598c14744b8f58549192c9849 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 5 Nov 2024 21:40:00 +0000 Subject: [PATCH] Remove files --- index.d.ts | 67 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4914 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index 1e04dd86e..000000000 --- a/index.d.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/* eslint-disable max-lines */ - -import base = require( './../../base' ); -import iter = require( './../../iter' ); -import special = require( './../../special' ); -import strided = require( './../../strided' ); -import tools = require( './../../tools' ); - -/** -* Interface describing the `math` namespace. -*/ -interface Namespace { - /** - * Base (i.e., lower-level) math functions. - */ - base: typeof base; - - /** - * Math iterators. - */ - iter: typeof iter; - - /** - * Special math functions. - */ - special: typeof special; - - /** - * Strided array math functions. - */ - strided: typeof strided; - - /** - * Math tools. - */ - tools: typeof tools; -} - -/** -* Standard math. -*/ -declare var ns: Namespace; - - -// EXPORTS // - -export = ns; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 4a17e5e56..000000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import n from"https://cdn.jsdelivr.net/gh/stdlib-js/utils-define-read-only-property@v0.2.2-esm/index.mjs";import e from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-safe-integer@esm/index.mjs";import r from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-pinf@esm/index.mjs";import t from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-ninf@esm/index.mjs";import i from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-int32-max@esm/index.mjs";import u from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-pinf@esm/index.mjs";import o from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-ninf@esm/index.mjs";import a from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-safe-integer@esm/index.mjs";import f from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float32-base-add@v0.1.0-esm/index.mjs";import s from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float32-base-mul@v0.1.0-esm/index.mjs";import c from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float64-base-add@v0.1.0-esm/index.mjs";import l from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float64-base-mul@v0.1.0-esm/index.mjs";import d from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-to-float32@esm/index.mjs";import v from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max@esm/index.mjs";import m from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-smallest-normal@esm/index.mjs";import p from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-eps@esm/index.mjs";import g from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float64-real@esm/index.mjs";import h from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float64-imag@esm/index.mjs";import b from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float64-ctor@esm/index.mjs";import j from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float32-real@esm/index.mjs";import N from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float32-imag@esm/index.mjs";import y from"https://cdn.jsdelivr.net/gh/stdlib-js/complex-float32-ctor@esm/index.mjs";import x from"https://cdn.jsdelivr.net/gh/stdlib-js/utils-define-nonenumerable-read-only-property@v0.2.1-esm/index.mjs";import w from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-fourth-pi@esm/index.mjs";import E from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float32-base-to-word@esm/index.mjs";import T from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float32-base-from-word@esm/index.mjs";import O from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-pi@esm/index.mjs";import k from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-get-high-word@esm/index.mjs";import q from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-set-high-word@esm/index.mjs";import V from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-exponent-bias@esm/index.mjs";import S from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-ln-two@esm/index.mjs";import _ from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-half-pi@esm/index.mjs";import B from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-half-pi@esm/index.mjs";import I from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-fourth-pi@esm/index.mjs";import M from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-high-word-sign-mask@esm/index.mjs";import P from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-high-word-abs-mask@esm/index.mjs";import A from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-to-words@esm/index.mjs";import F from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-from-words@esm/index.mjs";import R from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-signbit@esm/index.mjs";import C from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-pi@esm/index.mjs";import L from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-high-word-exponent-mask@esm/index.mjs";import z from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-high-word-significand-mask@esm/index.mjs";import D from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-get-low-word@esm/index.mjs";import U from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-base2-exponent@esm/index.mjs";import Z from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-base2-exponent-subnormal@esm/index.mjs";import G from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-base2-exponent-subnormal@esm/index.mjs";import{assign as H}from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-normalize@esm/index.mjs";import W from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-exponent@esm/index.mjs";import J from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zeros@esm/index.mjs";import K from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-sqrt-pi@esm/index.mjs";import Q from"https://cdn.jsdelivr.net/gh/stdlib-js/number-float64-base-set-low-word@esm/index.mjs";import X from"https://cdn.jsdelivr.net/gh/stdlib-js/number-uint32-base-to-int32@esm/index.mjs";import Y from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-e@esm/index.mjs";import $ from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-half-ln-two@esm/index.mjs";import nn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-sqrt-two-pi@esm/index.mjs";import en from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-eulergamma@esm/index.mjs";import rn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-safe-nth-factorial@esm/index.mjs";import tn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-gamma-lanczos-g@esm/index.mjs";import un from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-sqrt-eps@esm/index.mjs";import on from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-ln@esm/index.mjs";import an from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-ln@esm/index.mjs";import fn from"https://cdn.jsdelivr.net/gh/stdlib-js/function-ctor@esm/index.mjs";import sn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-has-generator-support@v0.2.2-esm/index.mjs";import cn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-two-pi@esm/index.mjs";import ln from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-smallest-normal@esm/index.mjs";import dn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-sqrt-two@esm/index.mjs";import vn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-max@esm/index.mjs";import mn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-ln-sqrt-two-pi@esm/index.mjs";import pn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-smallest-subnormal@esm/index.mjs";import gn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-phi@esm/index.mjs";import hn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-base10-exponent@esm/index.mjs";import bn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-base10-exponent@esm/index.mjs";import jn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-base10-exponent-subnormal@esm/index.mjs";import Nn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-sign-mask@esm/index.mjs";import yn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float32-abs-mask@esm/index.mjs";import xn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-infinite@esm/index.mjs";import wn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-min-base2-exponent@esm/index.mjs";import En from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-safe-nth-fibonacci@esm/index.mjs";import Tn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-max-safe-nth-lucas@esm/index.mjs";import On from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-pi-squared@esm/index.mjs";import kn from"https://cdn.jsdelivr.net/gh/stdlib-js/constants-float64-ln-pi@esm/index.mjs";import qn from"https://cdn.jsdelivr.net/gh/stdlib-js/array-float32@esm/index.mjs";import Vn from"https://cdn.jsdelivr.net/gh/stdlib-js/utils-constant-function@esm/index.mjs";import Sn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-function@v0.2.2-esm/index.mjs";import _n from"https://cdn.jsdelivr.net/gh/stdlib-js/string-format@v0.2.2-esm/index.mjs";import{isPrimitive as Bn}from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-number@v0.2.2-esm/index.mjs";import In from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-iterator-like@esm/index.mjs";import Mn from"https://cdn.jsdelivr.net/gh/stdlib-js/symbol-iterator@esm/index.mjs";import Pn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-plain-object@v0.2.2-esm/index.mjs";import An from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-has-own-property@v0.2.2-esm/index.mjs";import{isPrimitive as Fn}from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-nonnegative-integer@esm/index.mjs";import{isPrimitive as Rn}from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-finite@esm/index.mjs";import Cn from"https://cdn.jsdelivr.net/gh/stdlib-js/utils-fifo@esm/index.mjs";import Ln from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-meta-data-props@v0.2.2-esm/index.mjs";import zn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-complex-like@v0.2.2-esm/index.mjs";import Dn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-ndarray-like@v0.2.2-esm/index.mjs";import Un from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-collection@v0.2.2-esm/index.mjs";import Zn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-buffer-dtype@v0.3.0-esm/index.mjs";import Gn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-buffer@v0.3.0-esm/index.mjs";import Hn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-broadcast-array@v0.2.2-esm/index.mjs";import Wn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-ctor@v0.2.2-esm/index.mjs";import Jn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@v0.2.2-esm/index.mjs";import Kn from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@v0.2.2-esm/index.mjs";import Qn from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-copy-indexed@v0.2.2-esm/index.mjs";import Xn from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-null@v0.2.2-esm/index.mjs";import Yn from"https://cdn.jsdelivr.net/gh/stdlib-js/utils-keys@v0.2.2-esm/index.mjs";import $n from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-is-plain-object@esm/index.mjs";import ne from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-contains@esm/index.mjs";import ee from"https://cdn.jsdelivr.net/gh/stdlib-js/assert-has-own-property@esm/index.mjs";import re from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-orders@esm/index.mjs";import te from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-dtypes@esm/index.mjs";import ie from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-meta-data-props@v0.2.2-esm/index.mjs";import ue from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-dispatch@esm/index.mjs";import oe,{ndarray as ae}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-unary@esm/index.mjs";import fe from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-dtype-resolve-enum@esm/index.mjs";import se from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-dispatch@v0.2.2-esm/index.mjs";import ce from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-unary@v0.2.1-esm/index.mjs";import le from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-binary-dtype-signatures@esm/index.mjs";import de,{ndarray as ve}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-binary@esm/index.mjs";import me from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-binary-signature-callbacks@esm/index.mjs";import pe,{ndarray as ge}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-map-by2@esm/index.mjs";import he,{ndarray as be}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-map-by@esm/index.mjs";import je,{ndarray as Ne}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-dmap@esm/index.mjs";import ye,{ndarray as xe}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-dmskmap@esm/index.mjs";import we,{ndarray as Ee}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-smap@esm/index.mjs";import Te,{ndarray as Oe}from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-smskmap@esm/index.mjs";var ke=Math.sqrt,qe=Math.floor,Ve={11:!0,13:!0,17:!0,19:!0,23:!0,29:!0,31:!0,37:!0,41:!0,43:!0,47:!0,53:!0,59:!0,61:!0,67:!0,71:!0,73:!0,79:!0,83:!0,89:!0,97:!0,101:!0,103:!0,107:!0,109:!0,113:!0,127:!0,131:!0,137:!0,139:!0,149:!0,151:!0,157:!0,163:!0,167:!0,173:!0,179:!0,181:!0,191:!0,193:!0,197:!0,199:!0,211:!0};function Se(n){var r,t;if(qe(n)!==n)return!1;if(n<=3)return n>1;if(n>e||n%2==0)return!1;if(n<9)return!0;if(n%3==0)return!1;if(n%5==0)return!1;if(n%7==0)return!1;if(Ve[n])return!0;for(r=qe(ke(n)),t=11;t<=r;t+=210)if(n%t==0||n%(t+2)==0||n%(t+6)==0||n%(t+8)==0||n%(t+12)==0||n%(t+18)==0||n%(t+20)==0||n%(t+26)==0||n%(t+30)==0||n%(t+32)==0||n%(t+36)==0||n%(t+42)==0||n%(t+48)==0||n%(t+50)==0||n%(t+56)==0||n%(t+60)==0||n%(t+62)==0||n%(t+68)==0||n%(t+72)==0||n%(t+78)==0||n%(t+86)==0||n%(t+90)==0||n%(t+92)==0||n%(t+96)==0||n%(t+98)==0||n%(t+102)==0||n%(t+110)==0||n%(t+116)==0||n%(t+120)==0||n%(t+126)==0||n%(t+128)==0||n%(t+132)==0||n%(t+138)==0||n%(t+140)==0||n%(t+146)==0||n%(t+152)==0||n%(t+156)==0||n%(t+158)==0||n%(t+162)==0||n%(t+168)==0||n%(t+170)==0||n%(t+176)==0||n%(t+180)==0||n%(t+182)==0||n%(t+186)==0||n%(t+188)==0||n%(t+198)==0||n%(t+200)==0)return!1;return!0}function _e(n){return qe(n)===n}function Be(n){return _e(n)&&n>1&&n!==r&&!1===Se(n)}function Ie(n){return n!=n}function Me(n,e){return Ie(n)||Ie(e)||n===r||e===r||n===t||e===t?NaN:_e(n)&&_e(e)?(n<0&&(n=-n),e<0&&(e=-e),n<=i&&e<=i?function(n,e){var r,t=0;if(0===n)return e;if(0===e)return n;for(;0==(1&n)&&0==(1&e);)n>>>=1,e>>>=1,t+=1;for(;0==(1&n);)n>>>=1;for(;e;){for(;0==(1&e);)e>>>=1;n>e&&(r=e,e=n,n=r),e-=n}return n<e&&(r=e,e=n,n=r),e-=n}return t*n}(n,e)):NaN}function Pe(n){return _e(n/2)}function Ae(n){return n===r||n===t}function Fe(n){return n===u||n===o}function Re(n){return n!=n}function Ce(n){return qe(n)===n&&n<0}function Le(n){return 0===n&&1/n===t}function ze(n){return 0===n&&1/n===o}function De(n){return qe(n)===n&&n>=0}function Ue(n){return Pe(n>0?n-1:n+1)}function Ze(n){return 0===n&&1/n===r}function Ge(n){return n>=0&&n<=1}var He={};function We(n,e){return n+e}function Je(n){return Math.abs(n)}function Ke(n,e){return Ie(n)||Ie(e)?NaN:n===r||e===r?r:n===e&&0===n?Ze(n)?n:e:n>e?n:e}function Qe(n,e,r,t,i,u){var o;return 0===i?(n+t*(e/r))*u:0===(o=e*i)?n*u+e*u*i:(n+o)*u}function Xe(n,e,r,t){var i,u,o;return o=1/(r+t*(u=t/r)),(i=[0,0])[0]=Qe(n,e,r,t,u,o),i[1]=Qe(e,-n,r,t,u,o),i}n(He,"isEvenInt32",(function(n){return 0==(1&n)})),n(He,"isOddInt32",(function(n){return 1==(1&n)})),n(He,"isComposite",Be),n(He,"isCoprime",(function(n,e){var r=Me(n,e);return r==r&&1===r})),n(He,"isEven",Pe),n(He,"isFinite",(function(n){return n==n&&n>t&&no&&nt})),n(He,"isNegativeInteger",Ce),n(He,"isNegativeZero",Le),n(He,"isNegativeZerof",ze),n(He,"isNonNegativeFinite",(function(n){return n>=0&&nt})),n(He,"isNonPositiveInteger",(function(n){return qe(n)===n&&n<=0})),n(He,"isOdd",Ue),n(He,"isPositiveFinite",(function(n){return n>0&&n0})),n(He,"isPositiveZero",Ze),n(He,"isPositiveZerof",(function(n){return 0===n&&1/n===u})),n(He,"isPrime",Se),n(He,"isProbability",Ge),n(He,"isSafeInteger",(function(n){return n>=a&&n<=e&&_e(n)})),n(He,"isPow2Uint32",(function(n){return!(!(n>>>=0)||n&n-1)}));var Ye=.5*v,$e=m*(2/p),nr=2/(p*p);function er(n,e){var r=g(n)-g(e),t=h(n)-h(e);return new b(r,t)}function rr(n,e){var r=d(j(n)-j(e)),t=d(N(n)-N(e));return new y(r,t)}var tr="function"==typeof Math.imul?Math.imul:null;var ir="function"==typeof tr?tr:function(n,e){var r,t;return((r=(65535&(n|=0))>>>0)*(t=(65535&(e|=0))>>>0)>>>0)+((n>>>16>>>0)*t+r*(e>>>16>>>0)<<16>>>0)|0},ur=65535;function or(n,e,r,t,i){var u,o,a,f,s,c,l,d;return Ie(n)||Ie(e)?(r[i]=NaN,r[i+t]=NaN,r):(o=((l=(s=((n|=0)&ur)>>>0)*(c=((e|=0)&ur)>>>0)>>>0)&ur)>>>0,u=(l=(a=n>>16|0)*c+(d=l>>>16>>>0)>>>0)>>16>>>0,d=(l=s*(f=e>>16|0)+((l&ur)>>>0)>>>0)>>16>>>0,r[i]=a*f+u+d|0,r[i+t]=(l<<16)+o|0,r)}function ar(n,e){return or(n,e,[0,0],1,0)}function fr(n,e){return n*e}function sr(n,e){return n-e}x(ar,"assign",or);var cr=65535;function lr(n,e,r,t,i){var u,o,a,f,s,c,l,d;return Ie(n)||Ie(e)?(r[i]=NaN,r[i+t]=NaN,r):(o=((l=(s=((n>>>=0)&cr)>>>0)*(c=((e>>>=0)&cr)>>>0)>>>0)&cr)>>>0,u=(l=(a=n>>>16>>>0)*c+(d=l>>>16>>>0)>>>0)>>>16>>>0,d=(l=s*(f=e>>>16>>>0)+((l&cr)>>>0)>>>0)>>>16>>>0,r[i]=a*f+u+d>>>0,r[i+t]=(l<<16)+o>>>0,r)}function dr(n,e){return lr(n,e,[0,0],1,0)}x(dr,"assign",lr);var vr={};function mr(n){return n*n}function pr(n){return d(d(n)*d(n))}function gr(n){return Math.abs(n)}n(vr,"caddf",f),n(vr,"cmulf",s),n(vr,"cadd",c),n(vr,"cmul",l),n(vr,"add",We),n(vr,"add3",(function(n,e,r){return n+e+r})),n(vr,"add4",(function(n,e,r,t){return n+e+r+t})),n(vr,"add5",(function(n,e,r,t,i){return n+e+r+t+i})),n(vr,"addf",(function(n,e){return d(d(n)+d(e))})),n(vr,"cdiv",(function(n,e){var r,t,i,u,o,a,f,s;return r=g(n),t=g(e),i=h(n),u=h(e),a=Ke(Je(r),Je(i)),f=Ke(Je(t),Je(u)),s=1,a>=Ye?(r*=.5,i*=.5,s*=2):a<=$e&&(r*=nr,i*=nr,s/=nr),f>=Ye?(t*=.5,u*=.5,s*=.5):f<=$e&&(t*=nr,u*=nr,s*=nr),Je(u)<=Je(t)?o=Xe(r,i,t,u):(o=Xe(i,r,u,t))[1]*=-1,o[0]*=s,o[1]*=s,new b(o[0],o[1])})),n(vr,"cneg",(function(n){return new b(-g(n),-h(n))})),n(vr,"cnegf",(function(n){return new y(-j(n),-N(n))})),n(vr,"csub",er),n(vr,"csubf",rr),n(vr,"div",(function(n,e){return n/e})),n(vr,"divf",(function(n,e){return d(d(n)/d(e))})),n(vr,"imul",ir),n(vr,"imuldw",ar),n(vr,"mul",fr),n(vr,"mulf",(function(n,e){return d(d(n)*d(e))})),n(vr,"sub",sr),n(vr,"subf",(function(n,e){return d(d(n)-d(e))})),n(vr,"umul",(function(n,e){var r,t;return((r=(65535&(n>>>=0))>>>0)*(t=(65535&(e>>>=0))>>>0)>>>0)+((n>>>16>>>0)*t+r*(e>>>16>>>0)<<16>>>0)>>>0})),n(vr,"umuldw",dr);var hr=6123233995736766e-32;function br(n){var e,r,t,i,u;if(Ie(n))return NaN;if(n>0?t=n:(e=!0,t=-n),t>1)return NaN;if(t>.625)i=(r=1-t)*function(n){var e,r;return 0===n?.08333333333333809:((n<0?-n:n)<=1?(e=28.536655482610616+n*(n*(6.968710824104713+n*(.002967721961301243*n-.5634242780008963))-25.56901049652825),r=342.43986579130785+n*(n*(147.0656354026815+n*(1*n-21.947795316429207))-383.8770957603691)):(e=.002967721961301243+(n=1/n)*(n*(6.968710824104713+n*(28.536655482610616*n-25.56901049652825))-.5634242780008963),r=1+n*(n*(147.0656354026815+n*(342.43986579130785*n-383.8770957603691))-21.947795316429207)),e/r)}(r),r=ke(r+r),u=w-r,u-=r=r*i-hr,u+=w;else{if(t<1e-8)return n;u=(r=t*t)*function(n){var e,r;return 0===n?.16666666666666713:((n<0?-n:n)<=1?(e=n*(19.562619833175948+n*(n*(5.444622390564711+n*(.004253011369004428*n-.6019598008014124))-16.262479672107002))-8.198089802484825,r=n*(139.51056146574857+n*(n*(70.49610280856842+n*(1*n-14.740913729888538))-147.1791292232726))-49.18853881490881):(e=.004253011369004428+(n=1/n)*(n*(5.444622390564711+n*(n*(19.562619833175948+-8.198089802484825*n)-16.262479672107002))-.6019598008014124),r=1+n*(n*(70.49610280856842+n*(n*(139.51056146574857+-49.18853881490881*n)-147.1791292232726))-14.740913729888538)),e/r)}(r),u=t*u+t}return e?-u:u}var jr=6123233995736766e-32;function Nr(n){var e;return Ie(n)||n<-1||n>1?NaN:n>.5?2*br(ke(.5-.5*n)):(e=w-br(n),e+=jr,e+=w)}var yr=57.29577951308232;function xr(n){return n*yr}function wr(n){return d(ke(d(n)))}function Er(n){return 0===n?.16666586697101593:d(.16666586697101593+d(n*d(-.04274342209100723+d(-.008656363002955914*n))))}var Tr=3.1415925026,Or=1.5707962513,kr=7.5497894159e-8,qr=-4096,Vr=1.4901161193847656e-8,Sr=-.7066296339,_r=d(Or+kr);function Br(n){var e,r,t,i,u,o,a,f,s,c;return Re(n)||(n=d(n))<-1||n>1?NaN:1===n?0:-1===n?O:(t=gr(n))<.5?t<=Vr?_r:(i=d(n*n),u=d(i*Er(i)),o=d(1+d(i*Sr)),a=d(u/o),d(Or-d(n-d(kr-d(n*a))))):n<-.5?(i=d(.5*d(1+n)),u=d(i*Er(i)),o=d(1+d(i*Sr)),f=wr(i),a=d(u/o),c=d(d(a*f)-kr),d(Tr-d(2*d(f+c)))):(f=wr(i=d(.5*d(1-n))),e=E(f),r=T(e&qr),s=d(d(i-d(r*r))/d(f+r)),u=d(i*Er(i)),o=d(1+d(i*Sr)),a=d(u/o),c=d(d(a*f)+s),d(2*d(r+c)))}var Ir=.6931471803691238,Mr=1.9082149292705877e-10,Pr=.41421356237309503,Ar=-.2928932188134525,Fr=1.862645149230957e-9,Rr=5551115123125783e-32,Cr=9007199254740992,Lr=.6666666666666666;function zr(n){var e,i,u,o,a,f,s,c,l,d;if(n<-1||Ie(n))return NaN;if(-1===n)return t;if(n===r)return n;if(0===n)return n;if(d=1,(u=n<0?-n:n)Ar&&(d=0,o=n,i=1)}return 0!==d&&(u>20)-V)>0?1-(l-n):n-(l-1),a/=l):(d=((i=k(l=n))>>20)-V,a=0),(i&=1048575)<434334?l=q(l,1072693248|i):(d+=1,l=q(l,1071644672|i),i=1048576-i>>2),o=l-1),e=.5*o*o,0===i?0===o?d*Ir+(a+=d*Mr):d*Ir-((c=e*(1-Lr*o))-(d*Mr+a)-o):(c=(s=(f=o/(2+o))*f)*function(n){return 0===n?.6666666666666735:.6666666666666735+n*(.3999999999940942+n*(.2857142874366239+n*(.22222198432149784+n*(.1818357216161805+n*(.15313837699209373+.14798198605116586*n)))))}(s),0===d?o-(e-f*(e+c)):d*Ir-(e-(f*(e+c)+(d*Mr+a))-o))}var Dr=.6931471803691238,Ur=1.9082149292705877e-10,Zr=0x40000000000000,Gr=.3333333333333333,Hr=1048575,Wr=2146435072,Jr=1048576,Kr=1072693248;function Qr(n){var e,r,i,u,o,a,f,s,c,l,d,v;return 0===n?t:Ie(n)||n<0?NaN:(o=0,(r=k(n))=Wr?n+n:(o+=(r>>20)-V|0,o+=(s=(r&=Hr)+614244&1048576|0)>>20|0,f=(n=q(n,r|s^Kr))-1,(Hr&2+r)<3?0===f?0===o?0:o*Dr+o*Ur:(a=f*f*(.5-Gr*f),0===o?f-a:o*Dr-(a-o*Ur-f)):(s=r-398458|0,c=440401-r|0,u=(d=(v=(l=f/(2+f))*l)*v)*function(n){return 0===n?.3999999999940942:.3999999999940942+n*(.22222198432149784+.15313837699209373*n)}(d),i=v*function(n){return 0===n?.6666666666666735:.6666666666666735+n*(.2857142874366239+n*(.1818357216161805+.14798198605116586*n))}(d),a=i+u,(s|=c)>0?(e=.5*f*f,0===o?f-(e-l*(e+a)):o*Dr-(e-(l*(e+a)+o*Ur)-f)):0===o?f-l*(f-a):o*Dr-(l*(f-a)-o*Ur-f))))}var Xr=1<<28;function Yr(n){var e;return Ie(n)||n<1?NaN:1===n?0:n>=Xr?Qr(n)+S:n>2?Qr(2*n-1/(n+ke(n*n-1))):zr((e=n-1)+ke(2*e+e*e))}var $r=6123233995736766e-32,nt=2.414213562373095;function et(n){var e,i,u,o;return Ie(n)||0===n?n:n===r?_:n===t?-_:(n<0&&(i=!0,n=-n),e=0,n>nt?(u=_,e=1,n=-1/n):n<=.66?u=0:(u=w,e=2,n=(n-1)/(n+1)),o=(o=n*n)*function(n){return 0===n?-64.85021904942025:n*(n*(n*(-.8750608600031904*n-16.157537187333652)-75.00855792314705)-122.88666844901361)-64.85021904942025}(o)/function(n){return 0===n?194.5506571482614:194.5506571482614+n*(485.3903996359137+n*(432.88106049129027+n*(165.02700983169885+n*(24.858464901423062+1*n))))}(o),o=n*o+n,2===e?o+=.5*$r:1===e&&(o+=$r),u+=o,i?-u:u)}function rt(n){return et(1/n)}function tt(n){var e,r,t;return Re(n)||0===n?n:((n=d(n))<0?(e=-1,n=-n):e=1,n>2.414213562373095?(r=B,n=-d(1/n)):n>.414213562373095?(r=I,n=d(d(n-1)/d(n+1))):r=0,t=d(n*n),r=d(r+d(d(function(n){return 0===n?-.3333294987678528:d(-.3333294987678528+d(n*d(.19977711141109467+d(n*d(-.13877685368061066+d(.08053744584321976*n))))))}(t))*d(t*n)+n)),e<0&&(r=-r),r)}var it=1/(1<<28);function ut(n){var e,i;return Ie(n)||n<-1||n>1?NaN:1===n?r:-1===n?t:(n<0&&(e=!0,n=-n),n0?(r=1,t=n):(r=-1,t=-n),t>1?NaN:t<1e-4?n:(t>.5?(t=wr(i=d(.5*d(1-t))),e=1):(i=d(t*t),e=0),i=d(d(d(function(n){return 0===n?.16666752099990845:d(.16666752099990845+d(n*d(.07495300471782684+d(n*d(.04547002539038658+d(n*d(.024181311950087547+d(.04216320067644119*n))))))))}(i)*i)*t)+t),0!==e&&(i=d(i+i),i=d(B-i)),r<0&&(i=-i),i))}function vt(n){return dt(d(1/d(n)))}var mt=1/(1<<28),pt=1<<28;function gt(n){var e,r,t;return Ie(n)||Ae(n)?n:(n<0&&(n=-n,e=!0),t=npt?Qr(n)+S:n>2?Qr(2*n+1/(ke(n*n+1)+n)):zr(n+(r=n*n)/(1+ke(1+r))),e?-t:t)}function ht(n){return 2*Nr(ke(n))}function bt(n){return 2*br(ke(n))}function jt(n){return Nr(1/n)}function Nt(n){return Br(d(1/d(n)))}var yt=[0,0];function xt(n,e){var r,t;return A.assign(n,yt,1,0),r=yt[0],r&=P,t=k(e),F(r|=t&=M,yt[1])}function wt(n,e){var t;return Ie(e)||Ie(n)?NaN:Ae(e)?e===r?Ae(n)?xt(C/4,n):xt(0,n):Ae(n)?xt(3*C/4,n):xt(C,n):Ae(n)?xt(C/2,n):0===n?e>=0&&!R(e)?xt(0,n):xt(C,n):0===e?xt(C/2,n):(t=et(n/e),e<0?t<=0?t+C:t-C:t)}function Et(n){return Nr(1+n)}function Tt(n){return Nr(1-n)}var Ot=[1,.16666666666666666,-.03333333333333333,.023809523809523808,-.03333333333333333,.07575757575757576,-.2531135531135531,1.1666666666666667,-7.092156862745098,54.971177944862156,-529.1242424242424,6192.123188405797,-86580.25311355312,1425517.1666666667,-27298231.067816094,601580873.9006424,-15116315767.092157,429614643061.1667,-13711655205088.332,488332318973593.2,-0x448e22fd0e7564,0xbae4b5e068b9980,-0x22fcd9ea189658000,21150748638081993e5,-12086626522296526e7,7500866746076964e9,-5038778101481069e11,36528776484818122e12,-2.849876930245088e30,23865427499683627e16,-21399949257225335e18,20500975723478097e20,-2093800591134638e23,2.2752696488463515e40,-26257710286239577e26,3212508210271803e29,-4159827816679471e31,5692069548203528e33,-8.218362941978458e50,12502904327166994e37,-2001558323324837e40,33674982915364376e41,-5947097050313545e44,11011910323627977e46,-21355259545253502e48,43328896986641194e50,-9188552824166933e53,20346896776329074e55,-4700383395803573e58,1131804344548425e61,-28382249570693707e62,7.406424897967885e80,-20096454802756605e67,5665717005080594e70,-16584511154136216e72,5.036885995049238e90,-15861468237658186e77,51756743617545625e79,-17488921840217116e82,6.116051999495218e100,-22122776912707833e87,8272277679877097e90,-3195892511141571e93,12750082223387793e95,-5250092308677413e98,22301817894241627e100,-976845219309552e104,4409836197845295e106,-2050857088646409e109,9821443327979128e111,-4841260079820888e114,24553088801480982e116,-12806926804084748e119,6867616710466858e122,-3.7846468581969106e140,2142610125066529e128,-12456727137183695e130,7434578755100016e133,-45535795304641704e135,2861211281685887e139,-1843772355203387e142,1.2181154536221047e160,-8248218718531412e147,5722587793783294e150,-40668530525059105e152,29596092064642052e155,-22049522565189457e158,168125970728896e163,-1.3116736213556958e180,10467894009478039e167,-8543289357883371e170,7128782132248655e173,-608029314555359e177,5299677642484992e179,-4719425916874586e182,4.292841379140298e200,-39876744968232205e187,3781978041935888e191,-3661423368368119e194,3617609027237286e197,-3647077264519136e200,3750875543645441e203,-3934586729643903e206,4208821114819008e209,-4590229622061792e212,5.103172577262957e230,-5782276230365695e218,6676248216783588e221,-7853530764445042e224,9410689406705872e227,-11484933873465185e230,14272958742848785e233,-1805955958690931e237,23261535307660807e239,-30495751715499594e242,4068580607643398e246,-5523103132197436e249,76277279396434395e251,-10715571119697886e255,15310200895969188e258,-22244891682179836e261,3.286267919069014e280,-4935592895596035e268,7534957120083251e271,-1.1691485154584178e290,1843526146783894e278,-2953682617296808e281,4807932127750157e284,-7950212504588525e287,13352784187354634e290],kt=258;function qt(n){return Ie(n)||!De(n)?NaN:Ue(n)?0:n>kt?n/2&1?r:t:Ot[n/2]}var Vt=2220446049250313e-31,St=2148532223,_t=[0,0],Bt=[0,0];function It(n,e){var i,u;return 0===e||0===n||Ie(n)||Ae(n)?n:(H(n,_t,1,0),n=_t[0],e+=_t[1],(e+=W(n))U?n<0?t:r:(e<=Z?(e+=52,u=Vt):u=1,A.assign(n,Bt,1,0),i=Bt[0],i&=St,u*F(i|=e+V<<20,Bt[1])))}var Mt=[10680707,7228996,1387004,2578385,16069853,12639074,9804092,4427841,16666979,11263675,12935607,2387514,4345298,14681673,3074569,13734428,16653803,1880361,10960616,8533493,3062596,8710556,7349940,6258241,3772886,3769171,3798172,8675211,12450088,3874808,9961438,366607,15675153,9132554,7151469,3571407,2607881,12013382,4155038,6285869,7677882,13102053,15825725,473591,9065106,15363067,6271263,9264392,5636912,4652155,7056368,13614112,10155062,1944035,9527646,15080200,6658437,6231200,6832269,16767104,5075751,3212806,1398474,7579849,6349435,12618859],Pt=[1.570796251296997,7.549789415861596e-8,5390302529957765e-30,3282003415807913e-37,1270655753080676e-44,12293330898111133e-52,27337005381646456e-60,21674168387780482e-67],At=16777216,Ft=5.960464477539063e-8,Rt=J(20),Ct=J(20),Lt=J(20),zt=J(20);function Dt(n,e,r,t,i,u,o,a,f){var s,c,l,d,v,m,p,g,h;for(d=u,h=t[r],g=r,v=0;g>0;v++)c=Ft*h|0,zt[v]=h-At*c|0,h=t[g-1]+c,g-=1;if(h=It(h,i),h-=8*qe(.125*h),h-=p=0|h,l=0,i>0?(p+=v=zt[r-1]>>24-i,zt[r-1]-=v<<24-i,l=zt[r-1]>>23-i):0===i?l=zt[r-1]>>23:h>=.5&&(l=2),l>0){for(p+=1,s=0,v=0;v0)switch(i){case 1:zt[r-1]&=8388607;break;case 2:zt[r-1]&=4194303}2===l&&(h=1-h,0!==s&&(h-=It(1,i)))}if(0===h){for(g=0,v=r-1;v>=u;v--)g|=zt[v];if(0===g){for(m=1;0===zt[u-m];m++);for(v=r+1;v<=r+m;v++){for(f[a+v]=Mt[o+v],c=0,g=0;g<=a;g++)c+=n[g]*f[a+(v-g)];t[v]=c}return Dt(n,e,r+=m,t,i,u,o,a,f)}for(r-=1,i-=24;0===zt[r];)r-=1,i-=24}else(h=It(h,-i))>=At?(c=Ft*h|0,zt[r]=h-At*c|0,i+=24,zt[r+=1]=c):zt[r]=0|h;for(c=It(1,i),v=r;v>=0;v--)t[v]=c*zt[v],c*=Ft;for(v=r;v>=0;v--){for(c=0,m=0;m<=d&&m<=r-v;m++)c+=Pt[m]*t[v+m];Lt[r-v]=c}for(c=0,v=r;v>=0;v--)c+=Lt[v];for(e[0]=0===l?c:-c,c=Lt[0]-c,v=1;v<=r;v++)c+=Lt[v];return e[1]=0===l?c:-c,7&p}function Ut(n,e,r,t){var i,u,o,a,f,s,c;for(4,(u=(r-3)/24|0)<0&&(u=0),a=r-24*(u+1),s=u-(o=t-1),c=o+4,f=0;f<=c;f++)Rt[f]=s<0?0:Mt[s],s+=1;for(f=0;f<=4;f++){for(i=0,s=0;s<=o;s++)i+=n[s]*Rt[o+(f-s)];Ct[f]=i}return 4,Dt(n,e,4,Ct,a,4,u,o,Rt)}var Zt=Math.round,Gt=.6366197723675814,Ht=1.5707963267341256,Wt=6077100506506192e-26,Jt=6077100506303966e-26,Kt=20222662487959506e-37,Qt=20222662487111665e-37,Xt=84784276603689e-45,Yt=2047;function $t(n,e,r){var t,i,u,o,a;return u=n-(t=Zt(n*Gt))*Ht,o=t*Wt,a=e>>20|0,r[0]=u-o,a-(k(r[0])>>20&Yt)>16&&(o=t*Kt-((i=u)-(u=i-(o=t*Jt))-o),r[0]=u-o,a-(k(r[0])>>20&Yt)>49&&(o=t*Xt-((i=u)-(u=i-(o=t*Qt))-o),r[0]=u-o)),r[1]=u-r[0]-o,t}var ni=0,ei=16777216,ri=1.5707963267341256,ti=6077100506506192e-26,ii=2*ti,ui=3*ti,oi=4*ti,ai=598523,fi=1072243195,si=1073928572,ci=1074752122,li=1074977148,di=1075183036,vi=1075388923,mi=1075594811,pi=1094263291,gi=[0,0,0],hi=[0,0];function bi(n,e){var r,t,i,u,o,a,f;if((i=k(n)&P|0)<=fi)return e[0]=n,e[1]=0,0;if(i<=ci)return(i&z)===ai?$t(n,i,e):i<=si?n>0?(f=n-ri,e[0]=f-ti,e[1]=f-e[0]-ti,1):(f=n+ri,e[0]=f+ti,e[1]=f-e[0]+ti,-1):n>0?(f=n-2*ri,e[0]=f-ii,e[1]=f-e[0]-ii,2):(f=n+2*ri,e[0]=f+ii,e[1]=f-e[0]+ii,-2);if(i<=mi)return i<=di?i===li?$t(n,i,e):n>0?(f=n-3*ri,e[0]=f-ui,e[1]=f-e[0]-ui,3):(f=n+3*ri,e[0]=f+ui,e[1]=f-e[0]+ui,-3):i===vi?$t(n,i,e):n>0?(f=n-4*ri,e[0]=f-oi,e[1]=f-e[0]-oi,4):(f=n+4*ri,e[0]=f+oi,e[1]=f-e[0]+oi,-4);if(i=L)return e[0]=NaN,e[1]=NaN,0;for(r=D(n),f=F(i-((t=(i>>20)-1046)<<20|0),r),o=0;o<2;o++)gi[o]=0|f,f=(f-gi[o])*ei;for(gi[2]=f,u=3;gi[u-1]===ni;)u-=1;return a=Ut(gi,hi,t,u),n<0?(e[0]=-hi[0],e[1]=-hi[1],-a):(e[0]=hi[0],e[1]=hi[1],a)}var ji=-.16666666666666632,Ni=.00833333333332249,yi=-.0001984126982985795,xi=27557313707070068e-22,wi=-2.5050760253406863e-8,Ei=1.58969099521155e-10,Ti=.0416666666666666,Oi=-.001388888888887411,ki=2480158728947673e-20,qi=-2.7557314351390663e-7,Vi=2.087572321298175e-9,Si=-11359647557788195e-27;function _i(n,e,r,t,i){var u,o,a,f,s;return o=Ni+(s=n*n)*(yi+s*xi)+s*(f=s*s)*(wi+s*Ei),a=s*n,r[i]=0===e?n+a*(ji+s*o):n-(s*(.5*e-a*o)-e-a*ji),o=s*(Ti+s*(Oi+s*ki)),o+=f*f*(qi+s*(Vi+s*Si)),f=1-(u=.5*s),r[i+t]=f+(1-f-u+(s*o-n*e)),r}var Bi=1072243195,Ii=1044381696,Mi=[0,0];function Pi(n,e,r,t){var i,u,o;if(u=k(n),(u&=P)<=Bi)return u=L)return e[t]=NaN,e[t+r]=NaN,e;switch(o=bi(n,Mi),_i(Mi[0],Mi[1],e,r,t),3&o){case 1:return i=e[t+r],e[t+r]=-e[t],e[t]=i,e;case 2:return e[t]*=-1,e[t+r]*=-1,e;case 3:return i=-e[t+r],e[t+r]=e[t],e[t]=i,e;default:return e}}function Ai(n){return Pi(n,[0,0],1,0)}x(Ai,"assign",Pi);var Fi=.5641895835477563,Ri=2.404825557695773,Ci=5.520078110286311,Li=616,zi=-.0014244423042272315,Di=1413,Ui=.0005468602863106496,Zi=[0,0];function Gi(n){var e,t,i,u,o,a;return n<0&&(n=-n),n===r?0:0===n?1:n<=4?(u=function(n){var e,r;return 0===n?-.17291506903064494:((n<0?-n:n)<=1?(e=n*(27282507878.60594+n*(n*(6630299.79048338+n*(n*(103.44222815443189+-.12117036164593528*n)-36629.81465510709))-621407004.2354012))-412986685009.9087,r=2388378799633.229+n*(26328198300.85965+n*(139850973.72263435+n*(456126.9622421994+n*(936.1402239233771+n*(1+0*n)))))):(e=(n=1/n)*(103.44222815443189+n*(n*(6630299.79048338+n*(n*(27282507878.60594+-412986685009.9087*n)-621407004.2354012))-36629.81465510709))-.12117036164593528,r=0+n*(1+n*(936.1402239233771+n*(456126.9622421994+n*(139850973.72263435+n*(26328198300.85965+2388378799633.229*n)))))),e/r)}(o=n*n),(a=(n+Ri)*(n-Li/256-zi))*u):n<=8?(u=function(n){var e,r;return 0===n?.005119512965174424:((n<0?-n:n)<=1?(e=n*(n*(n*(10341.910641583727+n*(11725.046279757104+n*(4417.670702532509+n*(743.2119668062425+48.5917033559165*n))))-7287.970246446462)-12254.07816137899)-1831.9397969392085,r=n*(245991.0226258631+n*(n*(18680.99000835919+n*(n*(333.07310774649073+n*(1*n-25.258076240801554))-2945.876654550934))-84055.06259116957))-357834.78026152303):(e=48.5917033559165+(n=1/n)*(743.2119668062425+n*(4417.670702532509+n*(11725.046279757104+n*(10341.910641583727+n*(n*(-1831.9397969392085*n-12254.07816137899)-7287.970246446462))))),r=1+n*(n*(333.07310774649073+n*(n*(18680.99000835919+n*(n*(245991.0226258631+-357834.78026152303*n)-84055.06259116957))-2945.876654550934))-25.258076240801554)),e/r)}(o=1-n*n/64),(a=(n+Ci)*(n-Di/256-Ui))*u):(e=function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=22779.090197304686+n*(41345.38663958076+n*(21170.523380864943+n*(3480.648644324927+n*(153.76201909008356+.8896154842421046*n)))),r=22779.090197304686+n*(41370.41249551042+n*(21215.350561880117+n*(3502.8735138235606+n*(157.11159858080893+1*n))))):(e=.8896154842421046+(n=1/n)*(153.76201909008356+n*(3480.648644324927+n*(21170.523380864943+n*(41345.38663958076+22779.090197304686*n)))),r=1+n*(157.11159858080893+n*(3502.8735138235606+n*(21215.350561880117+n*(41370.41249551042+22779.090197304686*n))))),e/r)}(i=(o=8/n)*o),t=function(n){var e,r;return 0===n?-.015625:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(-.008803330304868075*n-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,r=5710.502412851206+n*(11951.131543434614+n*(7264.278016921102+n*(1488.7231232283757+n*(90.59376959499312+1*n))))):(e=(n=1/n)*(n*(n*(n*(-89.22660020080009*n-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,r=1+n*(90.59376959499312+n*(1488.7231232283757+n*(7264.278016921102+n*(11951.131543434614+5710.502412851206*n))))),e/r)}(i),a=Fi/ke(n),Pi(n,Zi,1,0),a*(e*(Zi[1]+Zi[0])-o*t*(Zi[0]-Zi[1])))}var Hi=3.8317059702075125,Wi=7.015586669815619,Ji=981,Ki=-.0003252797924876844,Qi=1796,Xi=-38330184381246464e-21,Yi=[0,0];function $i(n){var e,t,i,u,o,a,f,s;return s=Je(n),0===n||s===r?0:(s<=4?(o=function(n){var e,r;return 0===n?-.03405537391318949:((n<0?-n:n)<=1?(e=n*(6678104126.14924+n*(n*(980629.0409895825+n*(n*(10.650724020080236+-.010767857011487301*n)-4461.579298277507))-115486967.64841276))-142585098013.66644,r=4186860446082.0176+n*(42091902282.58013+n*(202283751.40097034+n*(591176.1449417479+n*(1074.227223951738+n*(1+0*n)))))):(e=(n=1/n)*(10.650724020080236+n*(n*(980629.0409895825+n*(n*(6678104126.14924+-142585098013.66644*n)-115486967.64841276))-4461.579298277507))-.010767857011487301,r=0+n*(1+n*(1074.227223951738+n*(591176.1449417479+n*(202283751.40097034+n*(42091902282.58013+4186860446082.0176*n)))))),e/r)}(a=n*n),e=(f=s*(s+Hi)*(s-Ji/256-Ki))*o):s<=8?(o=function(n){var e,r;return 0===n?-.010158790774176108:((n<0?-n:n)<=1?(e=n*(1660853173129901.8+n*(n*(355806656709.1062+n*(n*(5079326.614801118+n*(4.6179191852758255*n-7502.334222078161))-1811393126.9860668))-36658018905416.664))-0x3e45840c066730,r=0x17f1d1995ae4fb00+n*(0x3cda8dbce6f4c4+n*(84899346165481.42+n*(276227772862.44086+n*(648725028.9959639+n*(1126712.5065029138+n*(1388.6978985861358+1*n))))))):(e=4.6179191852758255+(n=1/n)*(n*(5079326.614801118+n*(n*(355806656709.1062+n*(n*(1660853173129901.8+-0x3e45840c066730*n)-36658018905416.664))-1811393126.9860668))-7502.334222078161),r=1+n*(1388.6978985861358+n*(1126712.5065029138+n*(648725028.9959639+n*(276227772862.44086+n*(84899346165481.42+n*(0x3cda8dbce6f4c4+0x17f1d1995ae4fb00*n))))))),e/r)}(a=n*n),e=(f=s*(s+Wi)*(s-Qi/256-Xi))*o):(t=function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(0*n-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,r=n*(n*(n*(n*(n*(1*n-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(e=0+(n=1/n)*(n*(n*(n*(n*(-4435757.816794128*n-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),r=1+n*(n*(n*(n*(n*(-4435757.816794128*n-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),e/r)}(u=(a=8/s)*a),i=function(n){var e,r;return 0===n?.046875:((n<0?-n:n)<=1?(e=33220.913409857225+n*(85145.1606753357+n*(66178.83658127084+n*(18494.262873223866+n*(1706.375429020768+n*(35.26513384663603+0*n))))),r=708712.8194102874+n*(1819458.0422439973+n*(1419460.669603721+n*(400294.43582266977+n*(37890.2297457722+n*(863.8367769604992+1*n)))))):(e=0+(n=1/n)*(35.26513384663603+n*(1706.375429020768+n*(18494.262873223866+n*(66178.83658127084+n*(85145.1606753357+33220.913409857225*n))))),r=1+n*(863.8367769604992+n*(37890.2297457722+n*(400294.43582266977+n*(1419460.669603721+n*(1819458.0422439973+708712.8194102874*n)))))),e/r)}(u),f=1/(ke(s)*K),Pi(s,Yi,1,0),e=f*(t*(Yi[0]-Yi[1])+a*i*(Yi[0]+Yi[1]))),n<0&&(e*=-1),e)}var nu=1/K,eu=2/C,ru=.8935769662791675,tu=3.957678419314858,iu=7.086051060301773,uu=228,ou=.0029519662791675214,au=1013,fu=.0006471693148578684,su=1814,cu=.00011356030177269763,lu=[0,0];function du(n){var e,i,u,o,a,f,s;return n<0?NaN:0===n?t:n===r?0:n<=3?(a=n*n,f=Qr(n/ru)*Gi(n)*eu,o=function(n){var e,r;return 0===n?.18214429522164177:((n<0?-n:n)<=1?(e=107235387820.03177+n*(n*(204222743.5737662+n*(n*(10102.532948020907+-18.402381979244993*n)-2128754.84744018))-8371625545.12605),r=588738657389.9703+n*(8161718777.729036+n*(55662956.624278255+n*(238893.93209447255+n*(664.7598668924019+1*n))))):(e=(n=1/n)*(10102.532948020907+n*(n*(204222743.5737662+n*(107235387820.03177*n-8371625545.12605))-2128754.84744018))-18.402381979244993,r=1+n*(664.7598668924019+n*(238893.93209447255+n*(55662956.624278255+n*(8161718777.729036+588738657389.9703*n))))),e/r)}(a),f+(s=(n+ru)*(n-uu/256-ou))*o):n<=5.5?(a=n*n,f=Qr(n/tu)*Gi(n)*eu,o=function(n){var e,r;return 0===n?-.051200622130023854:((n<0?-n:n)<=1?(e=n*(n*(43600098638.60306+n*(n*(4690528.861167863+n*(17.427031242901595*n-14566.865832663636))-695904393.9461962))-551074352067.2264)-22213976967566.19,r=433861465807072.6+n*(5426682441941.234+n*(34015103849.97124+n*(139602027.7098683+n*(406699.82352539554+n*(830.3085761207029+1*n)))))):(e=17.427031242901595+(n=1/n)*(n*(4690528.861167863+n*(n*(43600098638.60306+n*(-22213976967566.19*n-551074352067.2264))-695904393.9461962))-14566.865832663636),r=1+n*(830.3085761207029+n*(406699.82352539554+n*(139602027.7098683+n*(34015103849.97124+n*(5426682441941.234+433861465807072.6*n)))))),e/r)}(a),f+(s=(n+tu)*(n-au/256-fu))*o):n<=8?(a=n*n,f=Qr(n/iu)*Gi(n)*eu,o=function(n){var e,r;return 0===n?-.023356489432789604:((n<0?-n:n)<=1?(e=n*(670166418691732.4+n*(n*(n*(2195882717.0518103+n*(n*(21363.5341693139+-17.439661319197498*n)-10085539.923498211))-193630512667.72083)-128299123640.88687))-8072872690515021,r=0x4cbf33e862b0ac0+n*(0xdf3ce698dfcbf+n*(22598377924042.9+n*(86926121104.20982+n*(247272194.75672302+n*(539247.3920976806+n*(879.0336216812844+1*n))))))):(e=(n=1/n)*(21363.5341693139+n*(n*(2195882717.0518103+n*(n*(n*(670166418691732.4+-8072872690515021*n)-128299123640.88687)-193630512667.72083))-10085539.923498211))-17.439661319197498,r=1+n*(879.0336216812844+n*(539247.3920976806+n*(247272194.75672302+n*(86926121104.20982+n*(22598377924042.9+n*(0xdf3ce698dfcbf+0x4cbf33e862b0ac0*n))))))),e/r)}(a),f+(s=(n+iu)*(n-su/256-cu))*o):(e=function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=22779.090197304686+n*(41345.38663958076+n*(21170.523380864943+n*(3480.648644324927+n*(153.76201909008356+.8896154842421046*n)))),r=22779.090197304686+n*(41370.41249551042+n*(21215.350561880117+n*(3502.8735138235606+n*(157.11159858080893+1*n))))):(e=.8896154842421046+(n=1/n)*(153.76201909008356+n*(3480.648644324927+n*(21170.523380864943+n*(41345.38663958076+22779.090197304686*n)))),r=1+n*(157.11159858080893+n*(3502.8735138235606+n*(21215.350561880117+n*(41370.41249551042+22779.090197304686*n))))),e/r)}(u=(a=8/n)*a),i=function(n){var e,r;return 0===n?-.015625:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(-.008803330304868075*n-1.244102674583564)-22.300261666214197)-111.83429920482737)-185.91953644342993)-89.22660020080009,r=5710.502412851206+n*(11951.131543434614+n*(7264.278016921102+n*(1488.7231232283757+n*(90.59376959499312+1*n))))):(e=(n=1/n)*(n*(n*(n*(-89.22660020080009*n-185.91953644342993)-111.83429920482737)-22.300261666214197)-1.244102674583564)-.008803330304868075,r=1+n*(90.59376959499312+n*(1488.7231232283757+n*(7264.278016921102+n*(11951.131543434614+5710.502412851206*n))))),e/r)}(u),s=nu/ke(n),Pi(n,lu,1,0),s*(e*(lu[0]-lu[1])+a*i*(lu[1]+lu[0])))}var vu=1/K,mu=2/C,pu=2.197141326031017,gu=5.429681040794135,hu=562,bu=.001828826031017035,ju=1390,Nu=-6459205864867228e-21,yu=[0,0];function xu(n){var e,i,u,o,a,f,s;return n<0?NaN:0===n?t:n===r?0:n<=4?(a=n*n,f=Qr(n/pu)*$i(n)*mu,o=function(n){var e,r;return 0===n?.13187550549740895:((n<0?-n:n)<=1?(e=40535726612579.55+n*(5470861171652.543+n*(n*(7214454821.450256+n*(n*(221579.5322228026+-317.1442466004613*n)-59157479.9974084))-375959744978.196)),r=307378739210792.9+n*(4127228620040.646+n*(27800352738.690586+n*(122504351.22182964+n*(381364.70753052575+n*(820.7990816839387+1*n)))))):(e=(n=1/n)*(221579.5322228026+n*(n*(7214454821.450256+n*(n*(5470861171652.543+40535726612579.55*n)-375959744978.196))-59157479.9974084))-317.1442466004613,r=1+n*(820.7990816839387+n*(381364.70753052575+n*(122504351.22182964+n*(27800352738.690586+n*(4127228620040.646+307378739210792.9*n)))))),e/r)}(a),f+(s=(n+pu)*(n-hu/256-bu)/n)*o):n<=8?(a=n*n,f=Qr(n/gu)*$i(n)*mu,o=function(n){var e,r;return 0===n?.021593919914419626:((n<0?-n:n)<=1?(e=0x9fcaed579ed86000+n*(n*(n*(4068627528980474.5+n*(n*(374536739624.3849+n*(n*(1915380.6858264203+-1233.7180442012952*n)-1195796191.2070618))-59530713129741.984))-0x53fb01dd8596c0)-0x4ed64a1a7552bc00),r=5332184431331618e5+n*(0x4f0f2b7ff905d800+n*(0x6d8e405cd717f0+n*(111870100658569.7+n*(302217668529.60406+n*(635503180.8708892+n*(1045374.8201934079+n*(1285.516484932161+1*n)))))))):(e=(n=1/n)*(1915380.6858264203+n*(n*(374536739624.3849+n*(n*(4068627528980474.5+n*(n*(0x9fcaed579ed86000*n-0x4ed64a1a7552bc00)-0x53fb01dd8596c0))-59530713129741.984))-1195796191.2070618))-1233.7180442012952,r=1+n*(1285.516484932161+n*(1045374.8201934079+n*(635503180.8708892+n*(302217668529.60406+n*(111870100658569.7+n*(0x6d8e405cd717f0+n*(0x4f0f2b7ff905d800+5332184431331618e5*n)))))))),e/r)}(a),f+(s=(n+gu)*(n-ju/256-Nu)/n)*o):(e=function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(0*n-1611.6166443246102)-109824.05543459347)-1523529.3511811374)-6603373.248364939)-9942246.505077641)-4435757.816794128,r=n*(n*(n*(n*(n*(1*n-1455.0094401904962)-107263.8599110382)-1511809.5066341609)-6585339.4797230875)-9934124.389934586)-4435757.816794128):(e=0+(n=1/n)*(n*(n*(n*(n*(-4435757.816794128*n-9942246.505077641)-6603373.248364939)-1523529.3511811374)-109824.05543459347)-1611.6166443246102),r=1+n*(n*(n*(n*(n*(-4435757.816794128*n-9934124.389934586)-6585339.4797230875)-1511809.5066341609)-107263.8599110382)-1455.0094401904962)),e/r)}(u=(a=8/n)*a),i=function(n){var e,r;return 0===n?.046875:((n<0?-n:n)<=1?(e=33220.913409857225+n*(85145.1606753357+n*(66178.83658127084+n*(18494.262873223866+n*(1706.375429020768+n*(35.26513384663603+0*n))))),r=708712.8194102874+n*(1819458.0422439973+n*(1419460.669603721+n*(400294.43582266977+n*(37890.2297457722+n*(863.8367769604992+1*n)))))):(e=0+(n=1/n)*(35.26513384663603+n*(1706.375429020768+n*(18494.262873223866+n*(66178.83658127084+n*(85145.1606753357+33220.913409857225*n))))),r=1+n*(863.8367769604992+n*(37890.2297457722+n*(400294.43582266977+n*(1419460.669603721+n*(1819458.0422439973+708712.8194102874*n)))))),e/r)}(u),s=vu/ke(n),Pi(n,yu,1,0),s*(a*i*(yu[0]-yu[1])-e*(yu[0]+yu[1])))}var wu=Math.ceil;function Eu(n){return n<0?wu(n):qe(n)}var Tu=.6931471803691238,Ou=1.9082149292705877e-10,ku=1.4426950408889634,qu=709.782712893384,Vu=-745.1332191019411,Su=1/(1<<28),_u=-Su;function Bu(n){var e;return Ie(n)||n===r?n:n===t?0:n>qu?r:n_u&&n0?Ue(e)?n:0:Ue(e)?xt(r,n):r}(n,e);if(1===n)return 1;if(-1===n&&Ue(e))return-1;if(Ae(n))return n===t?ho(-0,-e):e<0?0:r}if(n<0&&!1===_e(e))return(n-n)/(n-n);if(o=Je(n),i=a&P|0,u=f&P|0,c=f>>>co|0,s=(s=a>>>co|0)&&Ue(e)?-1:1,u>io){if(u>uo)return function(n,e){return(k(n)&P)<=Iu?e<0?Mu*Mu:Pu*Pu:e>0?Mu*Mu:Pu*Pu}(n,e);if(iao)return 0===c?s*lo*lo:s*vo*vo;m=function(n,e){var r,t,i,u,o,a,f;return u=(i=e-1)*i*(0===(f=i)?.5:.5+f*(.25*f-.3333333333333333)),r=(a=i*Xu-u*Ku)-((t=Q(t=(o=Qu*i)+a,0))-o),n[0]=t,n[1]=r,n}(go,o)}else m=function(n,e,r){var t,i,u,o,a,f,s,c,l,d,v,m,p,g,h,b,j,N,y,x,w;return N=0,r>zu)-V|0,r=(y=r&Au|0)|Ru|0,y<=235662?x=0:y<767610?x=1:(x=0,N+=1,r-=Fu),e=q(e,r),s=Hu[x],o=Q(i=(b=e-s)*(j=1/(e+s)),0),t=(r>>1|Cu)+Lu,f=q(0,t+=x<<18),h=(u=i*i)*u*(0===(w=u)?.5999999999999946:.5999999999999946+w*(.4285714285785502+w*(.33333332981837743+w*(.272728123808534+w*(.23066074577556175+.20697501780033842*w))))),f=Q(f=3+(u=o*o)+(h+=(a=j*(b-o*f-o*(e-(f-s))))*(o+i)),0),l=Q(l=(b=o*f)+(j=a*f+(h-(f-3-u))*i),0),d=Zu*l,v=Gu*l+(j-(l-b))*Uu+Ju[x],c=Wu[x],p=v-((m=Q(m=d+v+c+(g=N),0))-g-c-d),n[0]=m,n[1]=p,n}(go,o,i);if(p=(v=(e-(l=Q(e,0)))*m[0]+e*m[1])+(d=l*m[0]),A.assign(p,po,1,0),g=X(po[0]),h=X(po[1]),g>=oo){if(0!=(g-oo|h))return s*lo*lo;if(v+mo>p-d)return s*lo*lo}else if((g&P)>=fo){if(0!=(g-so|h))return s*vo*vo;if(v<=p-d)return s*vo*vo}return p=function(n,e,r){var t,i,u,o,a,f,s,c,l,d;return l=((c=n&P|0)>>no)-V|0,s=0,c>$u&&(i=q(0,((s=n+(Yu>>l+1)>>>0)&~(z>>(l=((s&P)>>no)-V|0)))>>>0),s=(s&z|Yu)>>no-l>>>0,n<0&&(s=-s),e-=i),t=(f=(u=(i=Q(i=r+e,0))*eo)+(o=(r-(i-e))*S+i*ro))-(i=f*f)*(0===(d=i)?.16666666666666602:.16666666666666602+d*(d*(6613756321437934e-20+d*(4.1381367970572385e-8*d-16533902205465252e-22))-.0027777777777015593)),n=k(f=1-(f*t/(t-2)-((a=o-(f-u))+f*a)-f)),n=X(n),(n+=s<>>0)>>no<=0?It(f,s):q(f,n)}(g,d,v),s*p}function bo(n){var e,r;return 0===n?1/0:((n<0?-n:n)<=1?(e=709811.662581658+n*(679979.8474157227+n*(293136.7857211597+n*(74887.54032914672+n*(12555.290582413863+n*(1443.4299244417066+n*(115.24194596137347+n*(6.309239205732627+n*(.22668404630224365+n*(.004826466289237662+4624429436045379e-20*n))))))))),r=0+n*(362880+n*(1026576+n*(1172700+n*(723680+n*(269325+n*(63273+n*(9450+n*(870+n*(45+1*n)))))))))):(e=4624429436045379e-20+(n=1/n)*(.004826466289237662+n*(.22668404630224365+n*(6.309239205732627+n*(115.24194596137347+n*(1443.4299244417066+n*(12555.290582413863+n*(74887.54032914672+n*(293136.7857211597+n*(679979.8474157227+709811.662581658*n))))))))),r=1+n*(45+n*(870+n*(9450+n*(63273+n*(269325+n*(723680+n*(1172700+n*(1026576+n*(362880+0*n)))))))))),e/r)}var jo=10.900511;function No(n,e){var r,t,i,u,o,a,f;return Ie(n)||Ie(e)||n<0||e<0?NaN:1===e?1/n:1===n?1/e:(f=n+e)100?o*=Bu(r*zr(-e/u)):o*=ho(t/u,r),o*=ho(u>1e10?t/u*(i/u):t*i/(u*u),e),o*=ke(Y/i))}var yo=709.782712893384,xo=.6931471803691238,wo=1.9082149292705877e-10,Eo=1.4426950408889634,To=38.816242111356935,Oo=1.0397207708399179;function ko(n){var e,i,u,o,a,f,s,c,l,d,v,m,p;if(n===r||Ie(n))return n;if(n===t)return-1;if(0===n)return n;if(n<0?(u=!0,c=-n):(u=!1,c=n),c>=To){if(u)return-1;if(c>=yo)return r}if(f=0|k(c),c>$)c56?(c=1-(m-n),1024===p?(o=k(c)+(p<<20)|0,c=q(c,o)):c*=i,c-1):(v=1,p<20?c=(v=q(v,o=1072693248-(2097152>>p)|0))-(m-n):(c=n-(m+(v=q(v,o=V-p<<20|0))),c+=1),c*=i))}function qo(n,e){return Ie(n)||Ie(e)?NaN:n===t||e===t?t:n===e&&0===n?Le(n)?n:e:n=L)return NaN;switch(3&bi(n,Co)){case 0:return Ao(Co[0],Co[1]);case 1:return Vo(Co[0],Co[1]);case 2:return-Ao(Co[0],Co[1]);default:return-Vo(Co[0],Co[1])}}var zo=143.01608;function Do(n){var e,r,t;return e=1+(e=1/n)*function(n){return 0===n?.08333333333334822:.08333333333334822+n*(.0034722222160545866+n*(n*(.0007873113957930937*n-.00022954996161337813)-.0026813261780578124))}(e),r=Bu(n),r=n>zo?(t=ho(n,.5*n-.25))*(t/r):ho(n,n-.5)/r,nn*r*e}function Uo(n,e){return e/((1+en*n)*n)}function Zo(n){var e,i,u,o;if(_e(n)&&n<0||n===t||Ie(n))return NaN;if(0===n)return Le(n)?t:r;if(n>171.61447887182297)return r;if(n<-170.5674972726612)return 0;if((i=Je(n))>33)return n>=0?Do(n):(e=0==(1&(u=qe(i)))?-1:1,(o=i-u)>.5&&(o=i-(u+=1)),o=i*Lo(C*o),e*C/(Je(o)*Do(i)));for(o=1;n>=3;)o*=n-=1;for(;n<0;){if(n>-1e-9)return Uo(n,o);o/=n,n+=1}for(;n<2;){if(n<1e-9)return Uo(n,o);o/=n,n+=1}return 2===n?o:o*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=1+n*(.4942148268014971+n*(.20744822764843598+n*(.04763678004571372+n*(.010421379756176158+n*(.0011913514700658638+n*(.00016011952247675185+0*n)))))),r=1+n*(.0714304917030273+n*(n*(.035823639860549865+n*(.011813978522206043+n*(n*(.0005396055804933034+-23158187332412014e-21*n)-.004456419138517973)))-.23459179571824335))):(e=0+(n=1/n)*(.00016011952247675185+n*(.0011913514700658638+n*(.010421379756176158+n*(.04763678004571372+n*(.20744822764843598+n*(.4942148268014971+1*n)))))),r=n*(.0005396055804933034+n*(n*(.011813978522206043+n*(.035823639860549865+n*(n*(.0714304917030273+1*n)-.23459179571824335)))-.004456419138517973))-23158187332412014e-21),e/r)}(n-=2)}var Go=[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,20922789888e3,355687428096e3,6402373705728e3,0x1b02b9306890000,243290200817664e4,5109094217170944e4,11240007277776077e5,2585201673888498e7,6204484017332394e8,15511210043330986e9,40329146112660565e10,10888869450418352e12,30488834461171387e13,8.841761993739702e30,26525285981219107e16,8222838654177922e18,2631308369336935e20,8683317618811886e21,29523279903960416e22,1.0333147966386145e40,37199332678990125e25,13763753091226346e27,5230226174666011e29,20397882081197444e30,8159152832478977e32,3345252661316381e34,140500611775288e37,6041526306337383e37,2658271574788449e39,11962222086548019e40,5502622159812089e42,25862324151116818e43,12413915592536073e45,6082818640342675e47,30414093201713376e48,15511187532873822e50,8065817517094388e52,42748832840600255e53,2308436973392414e56,12696403353658276e57,7109985878048635e59,40526919504877214e60,23505613312828785e62,1.3868311854568984e80,832098711274139e67,5075802138772248e68,3146997326038794e70,198260831540444e73,12688693218588417e73,8.247650592082472e90,5443449390774431e77,3647111091818868e79,24800355424368305e80,1711224524281413e83,1.1978571669969892e100,8504785885678623e86,61234458376886085e87,44701154615126844e89,3307885441519386e92,248091408113954e95,18854947016660504e95,14518309202828587e97,11324281178206297e99,8946182130782976e101,7156945704626381e103,5.797126020747368e120,4753643337012842e107,3945523969720659e109,3314240134565353e111,281710411438055e114,2.4227095383672734e130,2107757298379528e117,18548264225739844e118,1650795516090846e121,14857159644817615e122,1.352001527678403e140,12438414054641308e126,11567725070816416e128,1087366156656743e131,1032997848823906e133,9916779348709496e134,9619275968248212e136,9426890448883248e138,9332621544394415e140,9332621544394415e142,942594775983836e145,9614466715035127e146,990290071648618e149,10299016745145628e150,1081396758240291e153,1.1462805637347084e170,1226520203196138e157,1324641819451829e159,14438595832024937e160,1588245541522743e163,1.7629525510902446e180,1974506857221074e167,22311927486598138e168,25435597334721877e170,2925093693493016e173,3.393108684451898e190,3969937160808721e177,4684525849754291e179,5574585761207606e181,6689502913449127e183,8.094298525273444e200,9875044200833601e187,1214630436702533e190,1506141741511141e192,1882677176888926e194,2372173242880047e196,30126600184576594e197,3856204823625804e200,4974504222477287e202,6466855489220474e204,847158069087882e207,11182486511960043e208,14872707060906857e210,19929427461615188e212,2.6904727073180504e230,3659042881952549e217,5012888748274992e219,6917786472619489e221,9615723196941089e223,13462012475717526e225,1898143759076171e228,2695364137888163e230,3854370717180073e232,55502938327393044e233,8047926057471992e236,11749972043909107e238,1727245890454639e241,25563239178728654e242,3.80892263763057e260,5713383956445855e247,862720977423324e250,13113358856834524e251,20063439050956823e253,30897696138473508e255,4789142901463394e258,7471062926282894e260,11729568794264145e262,1.853271869493735e280,29467022724950384e266,47147236359920616e268,7590705053947219e271,12296942187394494e273,20044015765453026e275,3287218585534296e278,5423910666131589e280,9003691705778438e282,1.503616514864999e300,25260757449731984e286,4269068009004705e289,7257415615307999e291];function Ho(n){return Ie(n)?NaN:_e(n)?n<0?NaN:n<=rn?Go[n]:r:Zo(n+1)}function Wo(n){var e,r;return 0===n?1/0:((n<0?-n:n)<=1?(e=38474670393.31777+n*(36857665043.51951+n*(15889202453.72942+n*(4059208354.298835+n*(680547661.1834733+n*(78239755.00312005+n*(6246580.776401795+n*(341986.3488721347+n*(12287.194511824551+n*(261.61404416416684+2.5066282746310007*n))))))))),r=0+n*(362880+n*(1026576+n*(1172700+n*(723680+n*(269325+n*(63273+n*(9450+n*(870+n*(45+1*n)))))))))):(e=2.5066282746310007+(n=1/n)*(261.61404416416684+n*(12287.194511824551+n*(341986.3488721347+n*(6246580.776401795+n*(78239755.00312005+n*(680547661.1834733+n*(4059208354.298835+n*(15889202453.72942+n*(36857665043.51951+38474670393.31777*n))))))))),r=1+n*(45+n*(870+n*(9450+n*(63273+n*(269325+n*(723680+n*(1172700+n*(1026576+n*(362880+0*n)))))))))),e/r)}var Jo=4269068009004705e289;function Ko(n,e){var r,t,i;return n=rn?(t=Ko(e,rn-e),t*=n,1/(t*=Jo)):1/(n*Zo(n+e)):(i=n+tn-.5,n+e===n?r=Je(e/i)=L)return NaN;switch(3&bi(n,Xo)){case 0:return Vo(Xo[0],Xo[1]);case 1:return-Ao(Xo[0],Xo[1]);case 2:return-Vo(Xo[0],Xo[1]);default:return Ao(Xo[0],Xo[1])}}function ea(n){var e,r;return Ie(n)||Ae(n)?NaN:0===(e=Je(r=n%2))||1===e?xt(0,r):e<.25?Lo(C*r):e<.75?xt(na(C*(e=.5-e)),r):e<1.25?(r=xt(1,r)-r,Lo(C*r)):e<1.75?-xt(na(C*(e-=1.5)),r):(r-=xt(2,r),Lo(C*r))}var ra=.07721566490153287,ta=.3224670334241136,ia=1,ua=-.07721566490153287,oa=.48383612272381005,aa=-.1475877229945939,fa=.06462494023913339,sa=-.07721566490153287,ca=1,la=.4189385332046727,da=1.4616321449683622,va=4503599627370496,ma=72057594037927940,pa=13877787807814457e-33,ga=1.4616321449683622,ha=-.12148629053584961,ba=-3638676997039505e-33;function ja(n){var e,t,i,u,o,a,f,s,c,l,d,v,m;if(Ie(n)||Ae(n))return n;if(0===n)return r;if(n<0?(e=!0,n=-n):e=!1,n=va)return r;if(0===(c=ea(n)))return r;t=Qr(C/Je(c*n))}if(1===n||2===n)return 0;if(n<2)switch(n<=.9?(m=-Qr(n),n>=da-1+.27?(d=1-n,i=0):n>=da-1-.27?(d=n-(ga-1),i=1):(d=n,i=2)):(m=0,n>=da+.27?(d=2-n,i=0):n>=da-.27?(d=n-ga,i=1):(d=n-1,i=2)),i){case 0:a=ra+(v=d*d)*function(n){return 0===n?.06735230105312927:.06735230105312927+n*(.007385550860814029+n*(.0011927076318336207+n*(.00022086279071390839+25214456545125733e-21*n)))}(v),o=v*(ta+v*function(n){return 0===n?.020580808432516733:.020580808432516733+n*(.0028905138367341563+n*(.0005100697921535113+n*(.00010801156724758394+44864094961891516e-21*n)))}(v)),m+=(f=d*a+o)-.5*d;break;case 1:a=oa+(l=(v=d*d)*d)*function(n){return 0===n?-.032788541075985965:n*(.006100538702462913+n*(.00031563207090362595*n-.0014034646998923284))-.032788541075985965}(l),o=aa+l*function(n){return 0===n?.01797067508118204:.01797067508118204+n*(n*(.000881081882437654+-.00031275416837512086*n)-.0036845201678113826)}(l),u=fa+l*function(n){return 0===n?-.010314224129834144:n*(.0022596478090061247+n*(.0003355291926355191*n-.0005385953053567405))-.010314224129834144}(l),m+=ha+(f=v*a-(ba-l*(o+d*u)));break;case 2:a=d*(sa+d*function(n){return 0===n?.6328270640250934:.6328270640250934+n*(1.4549225013723477+n*(.9777175279633727+n*(.22896372806469245+.013381091853678766*n)))}(d)),o=ca+d*function(n){return 0===n?2.4559779371304113:2.4559779371304113+n*(2.128489763798934+n*(.7692851504566728+n*(.10422264559336913+.003217092422824239*n)))}(d),m+=-.5*d+a/o}else if(n<8)switch(f=(d=n-(i=Eu(n)))*(ua+d*function(n){return 0===n?.21498241596060885:.21498241596060885+n*(.325778796408931+n*(.14635047265246445+n*(.02664227030336386+n*(.0018402845140733772+3194753265841009e-20*n))))}(d)),s=ia+d*function(n){return 0===n?1.3920053346762105:1.3920053346762105+n*(.7219355475671381+n*(.17193386563280308+n*(.01864591917156529+n*(.0007779424963818936+7326684307446256e-21*n))))}(d),m=.5*d+f/s,v=1,i){case 7:v*=d+6;case 6:v*=d+5;case 5:v*=d+4;case 4:v*=d+3;case 3:m+=Qr(v*=d+2)}else n=1?ran?ho(e,n)*Bu(-e):n>=1?ho(e/Bu(e/n),n):Bu(r-e):r>an?ho(e,n)*Bu(-e):e/n=0;)r=r*e+n[t],t-=1;return r}function Ma(n){var e,r,t,i;if(n.length>500)return function(e){return Ia(n,e)};if(e="return function evalpoly(x){",0===(r=n.length))e+="return 0.0;";else if(1===r)e+="return "+n[0]+";";else{for(e+="if(x===0.0){return "+n[0]+";}",e+="return "+n[0],t=r-1,i=1;i1&&(o=e),r=o.tolerance||p,i=o.maxTerms||1e6,u=o.initialValue||0,!0==("function"==typeof n.next)){for(t of n)if(Je(r*(u+=t))>=Je(t)||0==--i)break}else do{u+=t=n()}while(Je(r*u)1&&(o=e),r=o.tolerance||p,i=o.maxTerms||1e6,u=o.initialValue||0;do{u+=t=n()}while(Je(r*u).95?Qr(1+n)-n:r150?r=Bu(r=n*(zr(f)-f)+e*(.5-tn)/i):qo(u=n*Qr(e/i),o=n-e)<=an||Ke(u,o)>=on?(t=o/n,qo(u,o)/2>an&&Ke(u,o)/2an&&Ke(u,o)/4n?(r=(a=ho(e/i,n/4)*Bu(o/4))*a,r*=r):r=t>an&&t0){if((Je(e*(n-1))<.5||Je(e)<.2)&&(t=Qr(n)*e)<.5)return ko(t)}else if(Eu(e)!==e)return NaN;return Ae(r=ho(n,e)-1)||Ie(r)?NaN:r}var Ua=.15896368026733398,Za=.5281534194946289,Ga=.45201730728149414;function Ha(n,e,r){var t,i,u,o,a,f,s;if(n2){if(n>=3){do{r-=1,i+=Qr(n-=1)}while(n>=3);r=n-2}return o=0===(a=r)?-.01803556856784494:((a<0?-a:a)<=1?(f=a*(.02512664961998968+a*(.049410315156753225+a*(.0172491608709614+a*(a*(a*(0*a-3245886498259485e-20)-.0005410098692152044)-.0002594535632054381))))-.01803556856784494,s=1+a*(1.962029871977952+a*(1.4801966942423133+a*(.5413914320717209+a*(.09885042511280101+a*(.008213096746488934+a*(.00022493629192211576+-2.2335276320861708e-7*a))))))):(f=0+(a=1/a)*(a*(a*(a*(.0172491608709614+a*(.049410315156753225+a*(.02512664961998968+-.01803556856784494*a)))-.0002594535632054381)-.0005410098692152044)-3245886498259485e-20),s=a*(.00022493629192211576+a*(.008213096746488934+a*(.09885042511280101+a*(.5413914320717209+a*(1.4801966942423133+a*(1.962029871977952+1*a))))))-2.2335276320861708e-7),f/s),i+=(u=r*(n+1))*Ua+u*o}return n<1&&(i+=-Qr(n),r=e,e=n,n+=1),n<=1.5?(u=function(n){var e,r;return 0===n?.04906224540690395:((n<0?-n:n)<=1?(e=.04906224540690395+n*(n*(n*(n*(n*(-.0010034668769627955*n-.024014982064857155)-.1584135863906922)-.4065671242119384)-.4149833583594954)-.09691175301595212),r=1+n*(3.0234982984646304+n*(3.4873958536072385+n*(1.9141558827442668+n*(.5071377386143635+n*(.05770397226904519+.001957681026011072*n)))))):(e=(n=1/n)*(n*(n*(n*(n*(.04906224540690395*n-.09691175301595212)-.4149833583594954)-.4065671242119384)-.1584135863906922)-.024014982064857155)-.0010034668769627955,r=.001957681026011072+n*(.05770397226904519+n*(.5071377386143635+n*(1.9141558827442668+n*(3.4873958536072385+n*(3.0234982984646304+1*n)))))),e/r)}(e),i+=(t=e*r)*Za+t*u):(u=r*e,o=function(n){var e,r;return 0===n?-.029232972183027003:((n<0?-n:n)<=1?(e=n*(.14421626775719232+n*(n*(.05428096940550536+n*(n*(.0004311713426792973+0*n)-.008505359768683364))-.14244039073863127))-.029232972183027003,r=1+n*(n*(.846973248876495+n*(n*(.02558279715597587+n*(-8.271935218912905e-7*n-.0010066679553914337))-.22009515181499575))-1.5016935605448505)):(e=0+(n=1/n)*(.0004311713426792973+n*(n*(.05428096940550536+n*(n*(.14421626775719232+-.029232972183027003*n)-.14244039073863127))-.008505359768683364)),r=n*(n*(.02558279715597587+n*(n*(.846973248876495+n*(1*n-1.5016935605448505))-.22009515181499575))-.0010066679553914337)-8.271935218912905e-7),e/r)}(-r),i+=u*Ga+u*o)}function Wa(n){return Ie(n)?NaN:n<0?n<-.5?Zo(1+n)-1:ko(-zr(n)+Ha(n+2,n+1,n)):n<2?ko(Ha(n+1,n,n-1)):Zo(1+n)-1}var Ja;Ja=sn()?function(n,e){var r,t,i;return t={},arguments.length>1&&(t=e),r=t.maxIter||1e6,i=t.tolerance||p,t.keep?function(n,e,r){var t,i,u,o,a,f;if(0===(u=(f=(t="function"==typeof n.next)?n.next().value:n())[1])&&(u=ln),o=u,a=0,!0===t)do{(f=n.next().value)&&(0===(a=f[1]+f[0]*a)&&(a=ln),0===(o=f[1]+f[0]/o)&&(o=ln),u*=i=o*(a=1/a))}while(f&&Je(i-1)>e&&--r);else do{(f=n())&&(0===(a=f[1]+f[0]*a)&&(a=ln),0===(o=f[1]+f[0]/o)&&(o=ln),u*=i=o*(a=1/a))}while(f&&Je(i-1)>e&&--r);return u}(n,i,r):function(n,e,r){var t,i,u,o,a,f,s;if(o=(s=(t="function"==typeof n.next)?n.next().value:n())[1],u=s[0],0===o&&(o=ln),a=o,f=0,!0===t)do{(s=n.next().value)&&(0===(f=s[1]+s[0]*f)&&(f=ln),0===(a=s[1]+s[0]/a)&&(a=ln),o*=i=a*(f=1/f))}while(Je(i-1)>e&&--r);else do{(s=n())&&(0===(f=s[1]+s[0]*f)&&(f=ln),0===(a=s[1]+s[0]/a)&&(a=ln),o*=i=a*(f=1/f))}while(s&&Je(i-1)>e&&--r);return u/o}(n,i,r)}:function(n,e){var r,t,i;return t={},arguments.length>1&&(t=e),i=t.tolerance||p,r=t.maxIter||1e6,t.keep?function(n,e,r){var t,i,u,o,a;0===(o=(a=n())[1])&&(o=ln),i=o,u=0;do{(a=n())&&(0===(u=a[1]+a[0]*u)&&(u=ln),0===(i=a[1]+a[0]/i)&&(i=ln),o*=t=i*(u=1/u))}while(a&&Je(t-1)>e&&--r);return o}(n,i,r):function(n,e,r){var t,i,u,o,a,f;a=(f=n())[1],i=f[0],0===a&&(a=ln),u=a,o=0;do{(f=n())&&(0===(o=f[1]+f[0]*o)&&(o=ln),0===(u=f[1]+f[0]/u)&&(u=ln),a*=t=u*(o=1/o))}while(f&&Je(t-1)>e&&--r);return i/a}(n,i,r)};var Ka=Ja;function Qa(n,e){var r=function(n,e){var r=e-n+1,t=n,i=0;return function(){return[(i+=1)*(t-i),r+=2]}}(n,e);return 1/(e-n+1+Ka(r))}var Xa=170;function Ya(n,e,t,i){var u,o,a,f,s,c,l,d,m,p,g,h,b;if(n<0||e<=0)return NaN;if(o=void 0===t||t,l=i,d=0,e>=Xa&&!o)return l&&4*e4*n?(d=e*Qr(n)-n,d+=Qr(Ca(e,n,f=0)/e)):0===(d=Ya(e,n,!0,l))?l?(d=Qr(d=1+1/(12*e)+1/(288*e*e))-e+(e-.5)*Qr(e),d+=Qr(nn)):(d=e*Qr(n)-n,d+=Qr(Ca(e,n,f=0)/e)):d=Qr(d)+ja(e),d>on?r:Bu(d);switch(e<30&&e<=n+1&&n.6?(l=!l,a=0):s&&n>.2?(l=!l,a=1):n1?a=6:n<.5?a=-.4/Qr(n)20&&(p=Je((n-e)/e),e>200?20/e>p*p&&(c=!0):p<.4&&(c=!0)),c?a=5:n-1/(3*n)1){for(r=Bu(-e)/ke(C*e),r*=e,t=r/=.5,u=2;u=1||v*d>f?(f/=d,o||e<1||v/e>f?(f*=-e,u=!0):f=0):f=0)),d*=Ca(e,n,f)/e,u&&(l=!1,d=-d);break;case 3:g=function(n,e,r){var t,i,u,o;return i=((t=Wa(n))+1)/n,t-=u=Da(e,n),t/=n,o=function(n,e){var r,t,i,u;return r=-e,e=-e,t=n+1,i=1,function(){return u=r/t,r*=e,r/=i+=1,t+=1,u}}(n,e),t=-(u+=1)*Aa(o,{initialValue:((r?i:0)-t)/u}),r&&(t=-t),[t,i]}(e,n,l=!l),d=g[0],b=g[1],l=!1,o&&(d/=b);break;case 4:0!==(d=o?za(e,n):Ba(e,n))&&(d*=Qa(e,n));break;case 5:d=function(n,e){var r,t,i,u;return i=n*(t=-Fa((e-n)/n)),u=ke(2*t),e=e&&(l=!l);break;case 6:d=o?ho(n,e)/Zo(e+1):ho(n,e)/e,d*=1-e*n/(e+1)}return o&&d>1&&(d=1),l&&(d=(o?1:Zo(e))-d),d}var $a=new Array(30);function nf(n,e,r,t,i,u,o){var a,f,s,c,l,d,v,g,h,b,j,N,y,x,w,E,T,O;if(N=function(n,e){var r,t,i,u,o,a,f;return f=(e-n-tn+.5)/(i=n+tn-.5),n<1?e<=an?Bu(n*Qr(e)-e-ja(n)):ho(e,n)*Bu(-e)/Zo(n):(Je(f*f*n)<=100&&n>150?r=Bu(r=n*(zr(f)-f)+e*(.5-tn)/i):qo(u=n*Qr(e/i),o=n-e)<=an||Ke(u,o)>=on?(t=o/n,qo(u,o)/2>an&&Ke(u,o)/2an&&Ke(u,o)/4n?(r=(a=ho(e/i,n/4)*Bu(o/4))*a,r*=r):r=t>an&&t=1?ran?ho(e,n)*Bu(-e):n>=1?ho(e/Bu(e/n),n):Bu(r-e):r>an?ho(e,n)*Bu(-e):e/n1){if(Je(E)0||qo(n,e)<1)Je(l)<.1?u*=Bu(n*zr(l)):u*=ho(r*c/f,n),Je(d)<.1?u*=Bu(e*zr(d)):u*=ho(t*c/s,e);else if(rf(l,d)<.5)a=e/n,(o=n.1?(v=ko(a*zr(d)),u*=Bu(v=n*zr(v=l+v+v*l))):(v=ko(zr(l)/a),u*=Bu(v=e*zr(v=d+v+v*d)));else if(Je(l)=on){if((b+=Qr(u))>=on)return NaN;u=Bu(b)}else u*=Bu(b);else if((b=e*zr(d)+n*Qr(r*c/f))<=an||b>=on){if((b+=Qr(u))>=on)return NaN;u=Bu(b)}else u*=Bu(b);else if(g=t*c/s,l=n*Qr(p=r*c/f),d=e*Qr(g),l>=on||l<=an||d>=on||d<=an)if(nan)u*=ho(m*p,n);else{if((d+=l+Qr(u))>=on)return NaN;u=Bu(d)}else if((v=(Qr(m=ho(p,n/e))+Qr(g))*e)an)u*=ho(m*g,e);else{if((d+=l+Qr(u))>=on)return NaN;u=Bu(d)}else u*=ho(p,n)*ho(g,e);return u}var of={keep:!0,maxIter:1e3};function af(n,e,r,t,i,u){var o,a;return o=uf(n,e,r,t,i),u&&(u[1]=o),0===o?o:(a=function(n,e,r,t){var i=0;return function(){var u,o,a;return o=(n+i-1)*(n+e+i-1)*i*(e-i)*r*r,u=n+2*i-1,a=i,a+=i*(e-i)*r/(n+2*i-1),a+=(n+i)*(n*t-e*r+1+i*(2-r))/(n+2*i+1),i+=1,[o/=u*u,a]}}(n,e,r,t),o/Ka(a,of))}function ff(n,t){var i,u,o,a,f,s,c;if(Ie(n)||Ie(t))return NaN;if(!_e(n)||!_e(t))return NaN;if(t<0)return 0;if(u=1,n<0&&(n=-n+t-1,Ue(t)&&(u*=-1)),t>n)return 0;if(0===t||t===n)return u;if(1===t||t===n-1)return u*n;for(n-tc);f++)i*=n,i/=f,n-=1;return f>t?u*i:(o=ff(n,t-f+1))===r?u*o:(a=ff(t,t-f+1),u*(i/=a/=s=Me(o,a))*(o/=s))}function sf(n,e,r,t,i,u,o){var a,f,s,c;if(a=uf(n,e,r,t,u),o&&(o[1]=a),0===(a/=n))return a;for(s=1,f=1,c=0;can&&lan&&d1)return o[g]=NaN,o[h]=NaN,o;if(t){if(e<0||r<0)return o[g]=NaN,o[h]=NaN,o;if(0===e){if(0===r)return o[g]=NaN,o[h]=NaN,o;if(r>0)return o[g]=u?0:1,o}else if(0===r&&e>0)return o[g]=u?1:0,o}else if(e<=0||r<=0)return o[g]=NaN,o[h]=NaN,o;return 0===n?(o[h]=1===e?1:e<1?v/2:2*m,u?(o[g]=t?1:No(e,r),o):(o[g]=0,o)):1===n?(o[h]=1===r?1:r<1?v/2:2*m,o[g]=u?0:t?1:No(e,r),o):.5===e&&.5===r?(o[h]=df*ke(y*n),N=br(ke(u?y:n)),N/=_,t||(N*=C),o[g]=N,o):(1===e&&(p=r,r=e,e=p,p=y,y=n,n=p,u=!u),1===r?1===e?(o[g]=u?y:n,o[h]=1,o):(o[h]=e*ho(n,e-1),N=y<.5?u?-ko(e*zr(-y)):Bu(e*zr(-y)):u?-(ho(n,e)-1):ho(n,e),t||(N/=e),o[g]=N,o):(qo(e,r)<=1?(n>.5&&(p=r,r=e,e=p,p=y,y=n,n=p,u=!u),Ke(e,r)<=1?e>=qo(.2,r)||ho(n,e)<=.9?u?(u=!1,c=-lf(e,r,n,c=-(t?1:No(e,r)),t,o,y)):c=lf(e,r,n,0,t,o,y):(p=r,r=e,e=p,p=y,y=n,n=p,u=!u,y>=.3?u?(u=!1,c=-lf(e,r,n,c=-(t?1:No(e,r)),t,o,y)):c=lf(e,r,n,0,t,o,y):(s=t?1:ef(e+r,e,20),c=sf(e,r,n,y,20,t,o),u?(u=!1,c=-nf(e+20,r,n,y,c-=t?1:No(e,r),s,t)):c=nf(e+20,r,n,y,c,s,t))):r<=1||n<.1&&ho(r*n,e)<=.7?u?(u=!1,c=-lf(e,r,n,c=-(t?1:No(e,r)),t,o,y)):c=lf(e,r,n,0,t,o,y):(p=r,r=e,e=p,p=y,y=n,n=p,u=!u,y>=.3?u?(u=!1,c=-lf(e,r,n,c=-(t?1:No(e,r)),t,o,y)):c=lf(e,r,n,0,t,o,y):e>=15?u?(u=!1,c=-nf(e,r,n,y,c=-(t?1:No(e,r)),1,t)):c=nf(e,r,n,y,0,1,t):(s=t?1:ef(e+r,e,20),c=sf(e,r,n,y,20,t,o),u?(u=!1,c=-nf(e+20,r,n,y,c-=t?1:No(e,r),s,t)):c=nf(e+20,r,n,y,c,s,t)))):((em)for(a=u,f=qe(n-1);f>e;f--)u+=a*=(f+1)*t/((n-f)*r);else if((o=qe(n*r))<=e+1&&(o=qe(e+2)),u=ho(r,o)*ho(t,n-o),0==(u*=ff(qe(n),qe(o))))for(f=o-1;f>e;f--)u+=ho(r,f)*ho(t,n-f),u*=ff(qe(n),qe(f));else{for(a=u,i=u,f=o-1;f>e;f--)u+=a*=(f+1)*t/((n-f)*r);for(a=i,f=o+1;f<=n;f++)u+=a*=(n-f+1)*r/(f*t)}return u}(j=r+(b=e-1),b,n,y),t||(c*=No(e,r))):r*n<=.7?u?(u=!1,c=-lf(e,r,n,c=-(t?1:No(e,r)),t,o,y)):c=lf(e,r,n,0,t,o,y):e>15?((j=qe(r))===r&&(j-=1),l=r-j,s=t?1:ef(e+l,l,j),c=nf(e,l,n,y,c=sf(l,e,y,n,j,t),1,t),c/=s):t?((l=r-(j=qe(r)))<=0&&(j-=1,l+=1),c=sf(l,e,y,n,j,t),c+=sf(e,l,n,y,20,t),u&&(c-=1),c=nf(e+20,l,n,y,c,1,t),u&&(c=-c,u=!1)):c=af(e,r,n,y,t,o):c=af(e,r,n,y,t,o)),o[h]<0&&(o[h]=uf(e,r,n,y,!0)),d=y*n,0!==o[h]&&(v*d2||n<0?NaN:(n>1?(e=-1,i=2-n):(e=1,i=n),(n=1-i)<=.5?(u=n*(n+10),o=function(n){var e,r;return 0===n?-.0005087819496582806:((n<0?-n:n)<=1?(e=n*(n*(.03348066254097446+n*(n*(n*(.02198786811111689+n*(.008226878746769157+n*(n*(0+0*n)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,r=1+n*(n*(n*(1.5622155839842302+n*(.662328840472003+n*(n*(n*(.07952836873415717+n*(.0008862163904564247*n-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(e=0+(n=1/n)*(0+n*(n*(.008226878746769157+n*(.02198786811111689+n*(n*(n*(.03348066254097446+n*(-.0005087819496582806*n-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),r=.0008862163904564247+n*(n*(.07952836873415717+n*(n*(n*(.662328840472003+n*(1.5622155839842302+n*(n*(1*n-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),e/r)}(n),e*(u*gf+u*o)):i>=.25?(u=ke(-2*Qr(i)),o=function(n){var e,r;return 0===n?-.20243350835593876:((n<0?-n:n)<=1?(e=n*(.10526468069939171+n*(8.3705032834312+n*(17.644729840837403+n*(n*(n*(17.445385985570866+n*(21.12946554483405+-3.6719225470772936*n))-44.6382324441787)-18.851064805871424))))-.20243350835593876,r=1+n*(6.242641248542475+n*(3.971343795334387+n*(n*(n*(48.560921310873994+n*(10.826866735546016+n*(1.7211476576120028*n-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(e=(n=1/n)*(21.12946554483405+n*(17.445385985570866+n*(n*(n*(17.644729840837403+n*(8.3705032834312+n*(.10526468069939171+-.20243350835593876*n)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,r=1.7211476576120028+n*(n*(10.826866735546016+n*(48.560921310873994+n*(n*(n*(3.971343795334387+n*(6.242641248542475+1*n))-28.66081804998)-20.14326346804852)))-22.643693341313973)),e/r)}(i-=.25),e*(u/(hf+o))):(i=ke(-Qr(i)))<3?(o=function(n){var e,r;return 0===n?-.1311027816799519:((n<0?-n:n)<=1?(e=n*(n*(.11703015634199525+n*(.38707973897260434+n*(.3377855389120359+n*(.14286953440815717+n*(.029015791000532906+n*(.0021455899538880526+n*(n*(2.8522533178221704e-8+-6.81149956853777e-10*n)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,r=1+n*(3.4662540724256723+n*(5.381683457070069+n*(4.778465929458438+n*(2.5930192162362027+n*(.848854343457902+n*(.15226433829533179+n*(.011059242293464892+n*(0+n*(0+0*n)))))))))):(e=(n=1/n)*(2.8522533178221704e-8+n*(n*(.0021455899538880526+n*(.029015791000532906+n*(.14286953440815717+n*(.3377855389120359+n*(.38707973897260434+n*(.11703015634199525+n*(-.1311027816799519*n-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,r=0+n*(0+n*(0+n*(.011059242293464892+n*(.15226433829533179+n*(.848854343457902+n*(2.5930192162362027+n*(4.778465929458438+n*(5.381683457070069+n*(3.4662540724256723+1*n)))))))))),e/r)}(i-1.125),e*(bf*i+o*i)):i<6?(o=function(n){var e,r;return 0===n?-.0350353787183178:((n<0?-n:n)<=1?(e=n*(n*(.018557330651423107+n*(.009508047013259196+n*(.0018712349281955923+n*(.00015754461742496055+n*(460469890584318e-20+n*(26633922742578204e-28*n-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,r=1+n*(1.3653349817554064+n*(.7620591645536234+n*(.22009110576413124+n*(.03415891436709477+n*(.00263861676657016+n*(7646752923027944e-20+n*(0+0*n)))))))):(e=26633922742578204e-28+(n=1/n)*(n*(460469890584318e-20+n*(.00015754461742496055+n*(.0018712349281955923+n*(.009508047013259196+n*(.018557330651423107+n*(-.0350353787183178*n-.0022242652921344794))))))-2.304047769118826e-10),r=0+n*(0+n*(7646752923027944e-20+n*(.00263861676657016+n*(.03415891436709477+n*(.22009110576413124+n*(.7620591645536234+n*(1.3653349817554064+1*n)))))))),e/r)}(i-3),e*(jf*i+o*i)):(o=function(n){var e,r;return 0===n?-.016743100507663373:((n<0?-n:n)<=1?(e=n*(n*(.001056288621524929+n*(.00020938631748758808+n*(14962478375834237e-21+n*(4.4969678992770644e-7+n*(4.625961635228786e-9+n*(9905570997331033e-32*n-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,r=1+n*(.5914293448864175+n*(.1381518657490833+n*(.016074608709367652+n*(.0009640118070051656+n*(27533547476472603e-21+n*(2.82243172016108e-7+n*(0+0*n)))))))):(e=9905570997331033e-32+(n=1/n)*(n*(4.625961635228786e-9+n*(4.4969678992770644e-7+n*(14962478375834237e-21+n*(.00020938631748758808+n*(.001056288621524929+n*(-.016743100507663373*n-.0011295143874558028))))))-2811287356288318e-29),r=0+n*(0+n*(2.82243172016108e-7+n*(27533547476472603e-21+n*(.0009640118070051656+n*(.016074608709367652+n*(.1381518657490833+n*(.5914293448864175+1*n)))))))),e/r)}(i-6),e*(Nf*i+o*i)))}var xf=0,wf=[1,0,0,0,0,0,0,0,0,0];function Ef(n,e){var r,t,i;return t=Qo(n/2,.5)*ke(n*C)*(e-.5),r=1/n,wf[1]=0===(i=r)?.16666666666666666:.16666666666666666+.16666666666666666*i,wf[2]=function(n){return 0===n?.058333333333333334:.058333333333333334+n*(.06666666666666667+.008333333333333333*n)}(r),wf[3]=function(n){return 0===n?.0251984126984127:.0251984126984127+n*(.026785714285714284+n*(.0017857142857142857+.0001984126984126984*n))}(r),wf[4]=function(n){return 0===n?.012039792768959435:.012039792768959435+n*(.010559964726631394+n*(n*(.0003747795414462081+27557319223985893e-22*n)-.0011078042328042327))}(r),wf[5]=function(n){return 0===n?.003837005972422639:.003837005972422639+n*(.00610392115600449+n*(n*(.0005945867404200738+n*(2.505210838544172e-8*n-6270542728876062e-20))-.0016095979637646305))}(r),wf[6]=function(n){return 0===n?.0032177478835464946:.0032177478835464946+n*(.0010898206731540065+n*(n*(.0006908420797309686+n*(n*(154012654012654e-19+1.6059043836821613e-10*n)-.00016376804137220805))-.0012579159844784845))}(r),wf[7]=function(n){return 0===n?.001743826229834001:.001743826229834001+n*(3353097688001788e-20+n*(n*(.0006451304695145635+n*(n*(49255746366361444e-21+n*(7647163731819816e-28*n-39851014346715405e-22))-.000249472580470431))-.0007624513544032393))}(r),wf[8]=function(n){return 0===n?.0009647274732138864:.0009647274732138864+n*(n*(n*(.0005140660578834113+n*(n*(9086710793521991e-20+n*(n*(10914179173496788e-22+28114572543455206e-31*n)-15303004486655377e-21))-.00029133414466938067))-.00036307660358786886)-.0003110108632631878)}(r),wf[9]=function(n){return 0===n?.0005422926281312969:.0005422926281312969+n*(n*(n*(.00035764655430568635+n*(n*(.00012645437628698076+n*(n*(4890304529197534e-21+n*(822063524662433e-32*n-3.123956959982987e-7))-33202652391372056e-21))-.00028690924218514614))-.00010230378073700413)-.0003694266780000966)}(r),xf+t*Ia(wf,t*t)}var Tf=[0,0,0,0,0,0,0];function Of(n,e){var r,t,i,u,o,a,f;return f=Qo(n/2,.5)*ke(n*C)*e,i=n+2,u=n+4,o=n+6,Tf[0]=1,Tf[1]=-(n+1)/(2*i),i*=n+2,Tf[2]=-n*(n+1)*(n+3)/(8*i*u),i*=n+2,Tf[3]=-n*(n+1)*(n+5)*((3*n+7)*n-2)/(48*i*u*o),i*=n+2,u*=n+4,Tf[4]=-n*(n+1)*(n+7)*(((((15*n+154)*n+465)*n+286)*n-336)*n+64)/(384*i*u*o*(n+8)),i*=n+2,Tf[5]=-n*(n+1)*(n+3)*(n+9)*((((((35*n+452)*n+1573)*n+600)*n-2020)*n+928)*n-128)/(1280*i*u*o*(n+8)*(n+10)),i*=n+2,u*=n+4,o*=n+6,Tf[6]=-n*(n+1)*(n+11)*(((((((((((945*n+31506)*n+425858)*n+2980236)*n+11266745)*n+20675018)*n+7747124)*n-22574632)*n-8565600)*n+18108416)*n-7099392)*n+884736)/(46080*i*u*o*(n+8)*(n+10)*(n+12)),t=ho((a=ke(n))*f,1/n),r=Ia(Tf,t*t),r*=a,-(r/=t)}function kf(n,e){var r,t,i,u,o,a;return n>1e20?-yf(2*e)*dn:((a=ho(2*(u=((94.5/((t=48/((r=1/(n-.5))*r))+(i=((20700*r/t-98)*r-16)*r+96.36))-3)/t+1)*ke(r*_)*n)*e,2/n))>.05+r?(o=-yf(2*e)*dn,n<5&&(i+=.3*(n-4.5)*(o+.6)),a=ko(r*(a=(((((.4*(a=o*o)+6.3)*a+36)*a+94.5)/(i+=(((.05*u*o-5)*o-7)*o-2)*o+t)-a-3)/t+1)*o)*a)):a=((1/(((n+6)/(n*a)-.089*u-.822)*(n+2)*3)+.5/(n+4))*a-1)*(n+1)/(n+2)+1/a,-ke(n*a))}var qf=268435456,Vf=1/3,Sf=106/3,_f=.8549879733383485;function Bf(n,e,r){var t,i,u;return u=function(n,e,r){var t,i,u,o,a,f,s,c,l,d,v,m,p;if(o=0,e>r?(a=r,r=e,e=a,u=!0):u=!1,qe(n)===n&&n<20)switch(t=It(1,Sf),qe(n)){case 1:o=.5===e?0:-na(C*e)/Lo(C*e);break;case 2:o=(2*e-1)/ke(2*e*r);break;case 4:d=4*na(Nr(i=ke(4*e*r))/3)/i,v=ke(d-4),o=e-.5<0?-v:v;break;case 6:if(e<1e-150)return(u?-1:1)*kf(n,e);p=ho(m=4*(e-e*e),Vf),l=6*(1+_f*(1/p-1));do{f=l,l=2*(8*m*(l*(c=(s=l*l)*s))-270*s+2187)/(5*(4*m*c-216*l-243))}while(Je((l-f)/l)>t);l=ke(l-n),o=e-.5<0?-l:l;break;default:o=n>qf?yf(2*e)*dn:n<3?e>.2742-.0242143*n?Ef(n,e):Of(n,e):e>It(1,Zt(n/-.654))?kf(n,e):Of(n,e)}else o=n>qf?-yf(2*e)*dn:n<3?e>.2742-.0242143*n?Ef(n,e):Of(n,e):e>It(1,Zt(n/-.654))?kf(n,e):Of(n,e);return u?-o:o}(t=2*n,i=e/2,1-i),r&&(r.value=u*u/(t+u*u)),t/(t+u*u)}var If=[0,0,0,0,0,0,0],Mf=[0,0,0,0];var Pf=v/4;function Af(n,e){return function(r){var t,i;if(0===(i=1-r))return[-Pf,-Pf];if(0===r)return[-Pf,-Pf];return t=Qr(r)+e*Qr(i)+n,[t,1/r-e/i]}}function Ff(n){return 0===n||Ie(n)?n:n<0?-1:1}function Rf(n,e,r,t,i,u){var o,a,f,s,c,l,d,m,p,g;p=0,o=0,c=e,s=It(1,1-i),d=v,a=v,f=v,l=u;do{if(o=p,f=a,a=d,p=(m=n(c))[0],g=m[1],l-=1,0===p)break;if(0===g?(0===o&&(o=n(e=c===r?t:r),d=e-c),d=Ff(o)*Ff(p)<0?d<0?(c-r)/2:(c-t)/2:d<0?(c-t)/2:(c-r)/2):d=p/g,Je(2*d)>Je(f)&&(d=d>0?(c-r)/2:(c-t)/2),e=c,(c-=d)<=r){if((c=e-(d=.5*(e-r)))===r||c===t)break}else if(c>=t&&((c=e-(d=.5*(e-t)))===r||c===t))break;d>0?t=e:r=e}while(l&&Je(c*s)()=>{}})),Uf=Df("gammaincinv:higher_newton");var Zf=1e-8,Gf=.08333333333333333,Hf=.008333333333333333,Wf=[1,0,0,0,0,0];function Jf(n){var e,r,t,i,u,o,a,f,s,c;if(s=n*n*.5,0===n?u=0:n<-1?(f=Bu(-1-s),u=0===(c=f)?0:0+c*(1+c*(1+c*(1.5+c*(2.6666666666666665+c*(5.208333333333333+10.8*c)))))):n<1?u=function(n){return 0===n?1:1+n*(1+n*(.3333333333333333+n*(.027777777777777776+n*(n*(.0002314814814814815+5878894767783657e-20*n)-.003703703703703704))))}(f=n):(u=(f=11+s)+(o=Qr(f)),f=1/f,i=(t=(r=(e=o*o)*o)*o)*o,Wf[1]=.5*(2-o),Wf[2]=(-9*o+6+2*e)/6,Wf[3]=-(3*r+36*o-22*e-12)*Gf,Wf[4]=(60+350*e-300*o-125*r+12*t)/60,Wf[5]=-(-120-274*t+900*o-1700*e+1125*r+20*i)*Hf,u+=o*f*Ia(Wf,f)),f=1,n>-3.5&&n<-.03||n>.03&&n<40){f=1,a=u;do{f=Je(a/(u=a*(s+Qr(a))/(a-1))-1),a=u}while(f>Zf)}return u}var Kf=[1.9963790515900766,-.0017971032528832887,13129285796384672e-21,-2.340875228178749e-7,7.2291210671127e-9,-3.280997607821e-10,19875070901e-21,-1509214183e-21,1375340084e-22,-145728923e-22,17532367e-22,-2351465e-22,346551e-22,-55471e-22,9548e-22,-1748e-22,3.32e-20,-58e-22];var Qf=.30865217988013566;function Xf(n){var e;return n=0);return(t-u)/2}(17,e=18/(n*n)-1)/(12*n):(e=1/(n*n),n<1e3?function(n){return 0===n?.025721014990011306:.025721014990011306+n*(.08247596616699963+n*(n*(.0006099292666946337+n*(.000250505279903*n-.00033543297638406))-.0025328157302663564))}(e)/(Qf+e)/n:function(n){return 0===n?.08333333333333333:.08333333333333333+n*(n*(.0007936507936507937+-.0005952380952380953*n)-.002777777777777778)}(e)/n)}function Yf(n){return n>=3?Bu(Xf(n)):n>0?Zo(n)/(Bu(-n+(n-.5)*Qr(n))*nn):vn}var $f=Df("gammaincinv:compute"),ns=.5,es=.3333333333333333,rs=.25,ts=.2,is=.16666666666666666,us=.08333333333333333,os=.041666666666666664,as=[0,0,0,0,0];function fs(n,e,r){var t,i,u,o,a,f,s,c,l,d,v,m,p,g,h,b,j,N,y,x,w,E,T,O,k,q,V,S,_,B,I,M,P,A,F,R,C,L,z,D;if(e1&&n<500&&e<1e-80){for(R=0,f=1/n,t=1/(n+1),p=y=Bu(y=(ja(n+1)+Qr(e))*f),A=0;A<10;A++)y=p*Bu(y*f)*ho(1-y*t,f);F=1,u=ja(n)}if((s=1/n*(Qr(e)+ja(n+1)))5?(T=(E=(w=P*P)*P)*P,C=1/y,as[0]=P-1,as[1]=(3*M-2*M*P+w-2*P+2)*ns,as[2]=(24*M*P-11*O-24*M-6*w+12*P-12-9*M*w+6*O*P+2*E)*is,as[3]=(-12*k*P+8.04*M*w-114*O*P+(72+36*w)+(3*T-72*P+162)*(M-168*M*P)-(12*E+25*k)-(22*M*E+36*O*w+120*O))*us,as[4]=0,y=y-P+M*C*Ia(as,C)):(w=P*P,(z=P-M*(C=1/y)*(P-1))Qr(vn))return Uf("Warning: overflow problems in one or more steps of the computation. The initial approximation to the root is returned."),s;p=Bu(f)}else p=-o*g;p=a?-p*(Ya(g,e,!0,!1)-t):p*(Ya(g,e,!0,!0)-i),t>1e-120||m>1?(c=(2*d-4*g*e+4*g+2*l-3*e+1)/d,n=g+p*(1+p*(.5*(g-e+1)/g+p*(c/=6)))):n=g+p,v=Je(g/n-1),m+=1,(g=n)<0&&(g=s,m=100)}while(v>2e-14&&m<35);return(v>2e-14||m>99)&&Uf("Warning: the number of iterations in the Newton method reached the upper limit N=35. The last value obtained for the root is given as output."),g||0}(y,n,R,e,r,u,i,o)),I}function ss(n,e,t){return Ie(n)||Ie(e)||e1||n<0?NaN:!0===t?0===n?r:1===n?0:fs(e,1-n,n):0===n?0:1===n?r:fs(e,n,1-n)}var cs=32,ls=1e3,ds=[0,0,0,0,0];function vs(n,e,r,t){var i,u,o,a,f,s,c,l,d,g,h,b,j,N,y,x,w,E,T,O,k,q,V,S,B,I,M;if(u=!1,0===t)return[1,0];if(0===r)return[0,1];if(1===n){if(1===e)return[r,1-r];b=e,e=n,n=b,b=t,t=r,r=b,u=!0}if(I=0,a=0,s=1,.5===n){if(.5===e)return I=Lo(r*_),I*=I,M=Lo(t*_),[I,M*=M];e>.5&&(b=e,e=n,n=b,b=t,t=r,r=b,u=!u)}if(.5===e&&n>=.5&&1!==r)I=Bf(n,r,O={}),M=O.value;else{if(1===e)return r1?(I=ho(r,1/n),M=-ko(Qr(r)/n)):M=1-(I=ho(r,1/n)):(I=Bu(zr(-t)/n),M=-ko(zr(-t)/n)),u&&(b=M,M=I,I=b),[I,M];if(n+e>5)r>.5&&(b=e,e=n,n=b,b=t,t=r,r=b,u=!u),d=qo(n,e),l=Ke(n,e),ke(d)>l-d&&d>5?(I=function(n,e,r){var t,i,u,o,a,f,s;return t=yf(2*r),t/=-ke(n/2),Mf[0]=t,a=(o=(f=e-n)*f)*f,If[0]=-f*dn/2,If[1]=(1-2*f)/8,If[2]=-f*dn/48,If[3]=-1/192,If[4]=-f*dn/3840,If[5]=0,If[6]=0,Mf[1]=Ia(If,t),If[0]=f*dn*(3*f-2)/12,If[1]=(20*o-12*f+1)/128,If[2]=f*dn*(20*f-1)/960,If[3]=(16*o+30*f-15)/4608,If[4]=f*dn*(21*f+32)/53760,If[5]=(-32*o+63)/368640,If[6]=-f*dn*(120*f+17)/25804480,Mf[2]=Ia(If,t),If[0]=f*dn*(-75*o+80*f-16)/480,If[1]=(-1080*a+868*o-90*f-45)/9216,If[2]=f*dn*(-1190*o+84*f+373)/53760,If[3]=(-2240*a-2508*o+2100*f-165)/368640,If[4]=0,If[5]=0,If[6]=0,Mf[3]=Ia(If,t),s=-Bu(-(i=(u=Ia(Mf,1/n))*u)/2),0===i?.5:(1+u*ke((1+s)/i))/2}(n,e,r),M=1-I):(f=br(ke(n/(S=n+e))),(o=d/S)>=.2&&o<=.8&&S>=10?(I=(h=ho(r,1/n))<.0025&&n+e<200?h*ho(n*No(n,e),1/n):function(n,e,r){var t,i,u,o,a,f,s,c,l,d,v,m,p,g,h,b,j,N,y;return o=yf(2*n)/-ke(e/2),j=Lo(r),b=na(r),Lf[0]=o,g=j*j,h=b*b,c=(v=(m=j*b)*m)*(d=v*m),s=d*d,f=(l=v*v)*d,Cf[0]=(2*g-1)/(3*m),Cf[1]=-function(n){return 0===n?-1:n*(5*n-5)-1}(g)/(36*v),Cf[2]=function(n){return 0===n?1:1+n*(21+n*(46*n-69))}(g)/(1620*d),Cf[3]=function(n){return 0===n?7:7+n*(n*(33+n*(31*n-62))-2)}(g)/(6480*l),Cf[4]=function(n){return 0===n?25:25+n*(n*(n*(88+n*(46*n-115))-17)-52)}(g)/(90720*c),Cf[5]=0,Lf[1]=Ia(Cf,o),Cf[0]=-function(n){return 0===n?7:7+n*(12+n*(52*n-78))}(g)/(405*d),Cf[1]=function(n){return 0===n?-7:n*(2+n*(183+n*(185*n-370)))-7}(g)/(2592*l),Cf[2]=-function(n){return 0===n?-533:n*(776+n*(n*(10240+n*(5410*n-13525))-1835))-533}(g)/(204120*c),Cf[3]=-function(n){return 0===n?-1579:n*(3747+n*(n*(n*(45588+n*(15071*n-45213))-15821)-3372))-1579}(g)/(2099520*s),Cf[4]=0,Cf[5]=0,Lf[2]=Ia(Cf,o),Cf[0]=function(n){return 0===n?449:449+n*(n*(n*(6686+n*(3704*n-9260))-769)-1259)}(g)/(102060*c),Cf[1]=-function(n){return 0===n?63149:63149+n*(n*(140052+n*(n*(2239932+n*(750479*n-2251437))-727469))-151557)}(g)/(20995200*s),Cf[2]=function(n){return 0===n?29233:29233+n*(n*(105222+n*(146879+n*(n*(3195183+n*(729754*n-2554139))-1602610)))-78755)}(g)/(36741600*f),Cf[3]=0,Cf[4]=0,Cf[5]=0,Lf[3]=Ia(Cf,o),u=b/j,u*=u,p=-(a=Ia(Lf,1/e))*a/(2*g)+Qr(g)+h*Qr(h)/g,Je(a)<.7?(Cf[0]=g,Cf[1]=m,Cf[2]=(1-2*g)/3,Cf[3]=function(n){return 0===n?1:1+n*(13*n-13)}(g)/(36*m),Cf[4]=function(n){return 0===n?1:1+n*(21+n*(46*n-69))}(g)/(270*v),Cf[5]=0,y=Ia(Cf,a)):(N=Bu(p),Cf[0]=N,Cf[1]=u,Cf[2]=0,Cf[3]=3*u*(3*u+1)/6,Cf[4]=4*u*(4*u+1)*(4*u+2)/24,Cf[5]=5*u*(5*u+1)*(5*u+2)*(5*u+3)/120,((y=Ia(Cf,N))-g)*a<0&&(y=1-y)),a<0?(i=0,t=g):(i=g,t=1),(yt)&&(y=(i+t)/2),Rf(Af(-p,u),y,i,t,32,100)}(r,S,f),M=1-I):(n1e-5&&(I=function(n,e,r,t){var i,u,o,a,f,s,c,l,d,v,m,p,g,h,b,j,N,y,x,w,E,T,O,k,q,V;return a=rT&&(I=T),s=T}else n>1&&e>1?(j=(e-1)/(n+e-2),pf(T=(n-1)/(n+e-2),n,e)-r<0&&(b=e,e=n,n=b,b=t,t=r,r=b,b=j,j=T,T=b,u=!u),M=(I=Bu(w=Qr(r*n*No(n,e))/n))<.9?1-I:-ko(w),eT&&(I=T),s=T):(e.5&&(b=e,e=n,n=b,b=t,t=r,r=b,b=M,M=I,I=b,u=!u,B=1-a,a=1-s,s=B),0===a&&(u?I<(a=p)&&(I=a):a=m,I=t),I=function(n,e,r,t,i,u){var o,a,f,s,c,l,d,m,p,g,h,b,j,N,y,x;N=0,a=!1,l=e,c=It(1,1-i),d=0,f=p=Ke(1e7*e,1e7),s=p,m=u;do{if(d=N,s=f,f=p,N=(j=n(l))[0],y=j[1],x=j[2],m-=1,0===N)break;if(0===y?(0===d&&(d=n(e=l===r?t:r),p=e-l),p=Ff(d)*Ff(N)<0?p<0?(l-r)/2:(l-t)/2:p<0?(l-t)/2:(l-r)/2):0===x?p=N/y:(g=2*N,(p=Je(b=2*y-N*(x/y))<1&&Je(g)>=Je(b)*v?N/y:g/b)*y/N<0&&Je(p=N/y)>2*Je(e)&&(p=2*(p<0?-1:1)*Je(e))),(o=Je(p/s))>.8&&o<2&&(Je(p=p>0?(l-r)/2:(l-t)/2)>l&&(p=Ff(p)*l),s=3*p),e=l,(l-=p)1&&v/Je(l)0&&h<3)l=e-(p=.99*(e-r)),a=!0;else if((l=e-(p=(e-r)/2))===r||l===t)break}else if(l>t)if(h=Je(t)<1&&Je(l)>1&&v/Je(l)0&&h<3)l=e-(p=.99*(e-t)),a=!0;else if((l=e-(p=(e-t)/2))===r||l===t)break;p>0?t=e:r=e}while(m&&Je(l*c)=hs?0:n1.1)return NaN;for(t=0,i=0,e=2*n,u=0;u=10?(i=bs(u)+bs(o)-bs(u+o),-.5*Qr(o)+mn+i+(u-.5)*Qr(u/(u+o))+o*zr(-u/(u+o))):o>=10?(i=bs(o)-bs(u+o),ja(u)+i+u-u*Qr(u+o)+(o-.5)*zr(-u/(u+o))):Qr(Zo(u)*(Zo(o)/Zo(u+o)))}var Ns=e+1;function ys(n){var e,r,t,i;return Ie(n)||Ae(n)?NaN:(e=Je(n))>Ns?1:.5===(t=e-(r=qe(e)))?0:(i=t<.25?na(C*t):t<.75?Lo(C*(t=.5-t)):-na(C*(t=1-t)),r%2==1?-i:i)}var xs=2.23606797749979;function ws(n){var e;return Ie(n)||n===r||n===t?NaN:((e=ho(gn,n))-ys(n)/e)/xs}function Es(n,e){var t;return Ie(n)||Ie(e)?NaN:Ae(n)||Ae(e)?r:(n<0&&(n=-n),e<0&&(e=-e),n>>0)&M)>>>0,(r&=P)>>0,u=F(e|(t=(t/3>>>0)+Is>>>0),0)):u=q(u=0,e|(t=(r/3>>>0)+Bs>>>0)),u*=function(n){return 0===n?1.87595182427177:1.87595182427177+n*(n*(1.6214297201053545+n*(.14599619288661245*n-.758397934778766))-1.8849797954337717)}(i=u*u*(u/n)),A.assign(u,Ps,1,0),Ps[1]&Ss?(Ps[0]+=_s,Ps[1]&=~Ss):Ps[1]|=Ss,u=F(Ps[0]&ks,Ps[1]&qs),u+=u*(i=((i=n/(u*u))-u)/(u+u+i)))}function Fs(n){return d(As(d(n)))}var Rs=Math.ceil;var Cs=e+1,Ls=1e308;function zs(n,e){var t,i;return Ie(n)||Ie(e)||Ae(e)?NaN:Ae(n)||0===n||eCs&&e<=0?n:e>hn?n<=0?-0:r:e=Ws?n+n:u===Ks&&0===o?0:(m+=(u>>20)-V|0,d=m+=(v=(u&=z)+614244&Js|0)>>20|0,i=.5*(s=(n=q(n,u|v^Ks))-1)*s,c=Us(s),r=((f=s-(a=Q(a=s-i,0))-i+c)+a)*Hs+f*Gs,(r+=d-(l=d+(e=a*Gs))+e)+(e=l))}function Ys(n){var e,t;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,(t=Xs(n))===G?n:(t=-1===e?qe(t):wu(t))>U?r:e*ho(2,t))}var $s=0x40000000000000,nc=.4342944818781689,ec=25082946711645275e-27,rc=.30102999566361177,tc=3694239077158931e-28,ic=2146435072,uc=1048576,oc=1072693248,ac=[0,0];function fc(n){var e,r,i,u,o,a,f,s,c,l,d,v,m,p;if(Ie(n)||n<0)return NaN;if(A.assign(n,ac,1,0),a=ac[0],f=ac[1],p=0,a=ic?n+n:a===oc&&0===f?0:(p+=(a>>20)-V|0,v=p+=(m=(a&=z)+614244&uc|0)>>20|0,i=.5*(c=(n=q(n,a|m^oc))-1)*c,l=Us(c),u=Q(u=c-i,0),r=v*tc+((o=c-u-i+l)+u)*ec+o*nc,(r+=(s=v*rc)-(d=s+(e=u*nc))+e)+(e=d))}function sc(n){var e,t;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,t=fc(n),(t=-1===e?qe(t):wu(t))<=jn?0*e:t>hn?r:e*ho(10,t))}var cc=e+1,lc=1e308;function dc(n,e){var r,i;return Ie(n)||Ie(e)||Ae(e)?NaN:Ae(n)||0===n||ecc&&e<=0?n:e>hn?n>=0?0:t:e21?Bu(n)/2:(Bu(n)+Bu(-n))/2)}var jc=.7853981633974483;function Nc(n){var e;return n<-jc||n>jc?na(n)-1:-.5*(e=n*n)+e*e*function(n){return 0===n?.041666666666666664:.041666666666666664+n*(n*(2480158730157055e-20+n*(n*(2.087675428708152e-9+n*(4737750796424621e-29*n-1147028484342536e-26))-2.755731921499979e-7))-.0013888888888888872)}(e)}var yc=.7853981633974483,xc=3061616997868383e-32,wc=.3333333333333341,Ec=2147483647;function Tc(n,e,r){var t,i,u,o,a,f,s,c,l;return(i=(t=k(n))&Ec|0)>=1072010280&&(n<0&&(n=-n,e=-e),n=(l=yc-n)+(c=xc-e),e=0),o=function(n){return 0===n?.13333333333320124:.13333333333320124+n*(.021869488294859542+n*(.0035920791075913124+n*(.0005880412408202641+n*(7817944429395571e-20+-18558637485527546e-21*n))))}(c=(l=n*n)*l),s=l*function(n){return 0===n?.05396825397622605:.05396825397622605+n*(.0088632398235993+n*(.0014562094543252903+n*(.0002464631348184699+n*(7140724913826082e-20+2590730518636337e-20*n))))}(c),o=e+l*((a=l*n)*(o+s)+e),c=n+(o+=wc*a),i>=1072010280?(1-(t>>30&2))*((s=r)-2*(n-(c*c/(c+s)-o))):1===r?c:(s=o-((l=Q(c,0))-n),(f=Q(u=-1/c,0))+u*((a=1+f*l)+f*s))}var Oc=[0,0],kc=1072243195,qc=1044381696;function Vc(n){var e,r;return e=k(n),(e&=P)<=kc?e=L?NaN:(r=bi(n,Oc),Tc(Oc[0],Oc[1],1-((1&r)<<1)))}function Sc(n){return 1/Vc(n)}var _c=88.02969193111305;function Bc(n){var e,r;if((r=Je(n))>.5*_c)return n<0?-1:1;if(r>=.625)r=1-2/((e=Bu(2*r))+1),n<0&&(r=-r);else{if(0===n)return n;r=n+n*(e=n*n)*function(n){var e,r;return 0===n?-.3333333333333332:((n<0?-n:n)<=1?(e=n*(n*(0*n-.9643991794250523)-99.28772310019185)-1614.6876844170845,r=4844.063053251255+n*(2235.4883906010045+n*(112.81167849163293+1*n))):(e=0+(n=1/n)*(n*(-1614.6876844170845*n-99.28772310019185)-.9643991794250523),r=1+n*(112.81167849163293+n*(2235.4883906010045+4844.063053251255*n))),e/r)}(e)}return r}function Ic(n){return 1+Lo(n)}function Mc(n){return 1-Lo(n)}function Pc(n){return wt(h(n),g(n))}function Ac(n,e,r,t){return e[t]=Ts(n),e[t+r]=Pc(n),e}function Fc(n){return Ac(n,[0,0],1,0)}x(Fc,"assign",Ac);var Rc=e+1,Cc=1e308;function Lc(n,e){var r,t;return Ie(n)||Ie(e)||Ae(e)?NaN:Ae(n)||0===n||eRc&&e<=0?n:e>hn?0*n:eDc||n0?r:t:(e=Je(n))>1?e>=Zc?(e=Bu(.5*e),e*=.5*e,n<0&&(e=-e),e):(e=.5*(e=Bu(e))-.5/e,n<0&&(e=-e),e):n+n*(e*=e)*function(n){var e,r;return 0===n?.16666666666666666:((n<0?-n:n)<=1?(e=n*(n*(-.789474443963537*n-163.72585752598383)-11561.443576500522)-351754.9648081514,r=n*(36157.827983443196+n*(1*n-277.7110814206028))-2110529.7888489086):(e=(n=1/n)*(n*(-351754.9648081514*n-11561.443576500522)-163.72585752598383)-.789474443963537,r=1+n*(n*(36157.827983443196+-2110529.7888489086*n)-277.7110814206028)),e/r)}(e)}var Hc=d(.017453292519943295);function Wc(n){return d(d(n)*Hc)}var Jc=1.4616321446374059,Kc=3.309564688275257e-10,Qc=9.016312093258695e-20,Xc=.9955816268920898;var Yc=10;function $c(n){var e,r;if(Ie(n)||0===n)return NaN;if(n<=-1){if((e=(n=1-n)-qe(n))>.5&&(e-=1),0===e)return NaN;r=C/Vc(C*e)}else r=0;if(n>=Yc)return r+=function(n){var e;return Qr(n-=1)+1/(2*n)-(e=1/(n*n))*function(n){return 0===n?.08333333333333333:.08333333333333333+n*(n*(.003968253968253968+n*(n*(.007575757575757576+n*(n*(.08333333333333333+-.4432598039215686*n)-.021092796092796094))-.004166666666666667))-.008333333333333333)}(e)}(n),r;for(;n>2;)r+=1/(n-=1);for(;n<1;)r-=1/n,n+=1;return r+=function(n){var e,r;return e=n-Jc,e-=Kc,e-=Qc,r=function(n){var e,r;return 0===n?.25479851061131553:((n<0?-n:n)<=1?(e=.25479851061131553+n*(n*(n*(n*(n*(0*n-.002071332116774595)-.04525132144873906)-.28919126444774784)-.6503185377089651)-.3255503118680449),r=1+n*(2.076711702373047+n*(1.4606242909763516+n*(.43593529692665967+n*(.054151797245674226+n*(.0021284987017821146+-5.578984132167551e-7*n)))))):(e=0+(n=1/n)*(n*(n*(n*(n*(.25479851061131553*n-.3255503118680449)-.6503185377089651)-.28919126444774784)-.04525132144873906)-.002071332116774595),r=n*(.0021284987017821146+n*(.054151797245674226+n*(.43593529692665967+n*(1.4606242909763516+n*(2.076711702373047+1*n)))))-5.578984132167551e-7),e/r)}(n-1),e*Xc+e*r}(n),r}function nl(n){return Ie(n)?NaN:0===n?r:0}var el=[1.2020569031595942,1.03692775514337,1.008349277381923,1.0020083928260821,1.0004941886041194,1.0001227133475785,1.000030588236307,1.0000076371976379,1.0000019082127165,1.0000004769329869,1.000000119219926,1.0000000298035034,1.0000000074507118,1.0000000018626598,1.0000000004656628,1.0000000001164155,1.0000000000291038,1.000000000007276,1.000000000001819,1.0000000000004547,1.0000000000001137,1.0000000000000284,1.000000000000007,1.0000000000000018,1.0000000000000004,1.0000000000000002,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],rl=[-.5,1.6449340668482264,1.0823232337111381,1.0173430619844492,1.0040773561979444,1.000994575127818,1.000246086553308,1.0000612481350588,1.0000152822594086,1.000003817293265,1.0000009539620338,1.0000002384505027,1.000000059608189,1.0000000149015549,1.000000003725334,1.0000000009313275,1.000000000232831,1.0000000000582077,1.000000000014552,1.000000000003638,1.0000000000009095,1.0000000000002274,1.0000000000000568,1.0000000000000142,1.0000000000000036,1.0000000000000009,1.0000000000000002,1],tl=[1,.16666666666666666,-.03333333333333333,.023809523809523808,-.03333333333333333,.07575757575757576,-.2531135531135531,1.1666666666666667,-7.092156862745098,54.971177944862156,-529.1242424242424,6192.123188405797,-86580.25311355312,1425517.1666666667,-27298231.067816094,601580873.9006424,-15116315767.092157,429614643061.1667,-13711655205088.332,488332318973593.2,-0x448e22fd0e7564,0xbae4b5e068b9980,-0x22fcd9ea189658000,21150748638081993e5,-12086626522296526e7,7500866746076964e9,-5038778101481069e11,36528776484818122e12,-2.849876930245088e30,23865427499683627e16,-21399949257225335e18,20500975723478097e20,-2093800591134638e23,2.2752696488463515e40,-26257710286239577e26,3212508210271803e29,-4159827816679471e31,5692069548203528e33,-8.218362941978458e50,12502904327166994e37,-2001558323324837e40,33674982915364376e41,-5947097050313545e44,11011910323627977e46,-21355259545253502e48,43328896986641194e50,-9188552824166933e53,20346896776329074e55,-4700383395803573e58,1131804344548425e61,-28382249570693707e62,7.406424897967885e80,-20096454802756605e67,5665717005080594e70,-16584511154136216e72,5.036885995049238e90,-15861468237658186e77,51756743617545625e79,-17488921840217116e82,6.116051999495218e100,-22122776912707833e87,8272277679877097e90,-3195892511141571e93,12750082223387793e95,-5250092308677413e98,22301817894241627e100,-976845219309552e104,4409836197845295e106,-2050857088646409e109,9821443327979128e111,-4841260079820888e114,24553088801480982e116,-12806926804084748e119,6867616710466858e122,-3.7846468581969106e140,2142610125066529e128,-12456727137183695e130,7434578755100016e133,-45535795304641704e135,2861211281685887e139,-1843772355203387e142,1.2181154536221047e160,-8248218718531412e147,5722587793783294e150,-40668530525059105e152,29596092064642052e155,-22049522565189457e158,168125970728896e163,-1.3116736213556958e180,10467894009478039e167,-8543289357883371e170,7128782132248655e173,-608029314555359e177,5299677642484992e179,-4719425916874586e182,4.292841379140298e200,-39876744968232205e187,3781978041935888e191,-3661423368368119e194,3617609027237286e197,-3647077264519136e200,3750875543645441e203,-3934586729643903e206,4208821114819008e209,-4590229622061792e212,5.103172577262957e230,-5782276230365695e218,6676248216783588e221,-7853530764445042e224,9410689406705872e227,-11484933873465185e230,14272958742848785e233,-1805955958690931e237,23261535307660807e239,-30495751715499594e242,4068580607643398e246,-5523103132197436e249,76277279396434395e251,-10715571119697886e255,15310200895969188e258,-22244891682179836e261,3.286267919069014e280,-4935592895596035e268,7534957120083251e271,-1.1691485154584178e290,1843526146783894e278,-2953682617296808e281,4807932127750157e284,-7950212504588525e287,13352784187354634e290];var il=129,ul=170,ol=709,al=1.2433929443359375,fl=.6986598968505859;function sl(n){var e,i,u,o,a,f,s,c,l;if(Ie(n))return NaN;if(1===n)return NaN;if(n>=56)return 1;if(_e(n)&&(o=0|n)===n){if(!(o<0))return 0==(1&o)?rl[o/2]:el[(o-3)/2];if(0==(1&(u=0|-o)))return 0;if((f=(u+1)/2|0)<=il)return-tl[f]/(u+1)}return Je(n)ul?(e=2*ea(.5*i)*sl(n),a=ja(n),(a-=n*Qr(cn))>ol?e<0?t:r:e*Bu(a)):2*ea(.5*i)*ho(cn,-n)*Zo(n)*sl(n)):n<1?(e=0===(s=i)?.2433929443359375:((s<0?-s:s)<=1?(c=.2433929443359375+s*(s*(.055761621477604675+s*(s*(.0004515345286457964+-9332412703570615e-21*s)-.003209124988790859))-.4909247051635357),l=1+s*(s*(.04196762233099861+s*(s*(.00024978985622317937+-10185578841856403e-21*s)-.00413421406552171))-.27996033431034445)):(c=(s=1/s)*(.0004515345286457964+s*(s*(.055761621477604675+s*(.2433929443359375*s-.4909247051635357))-.003209124988790859))-9332412703570615e-21,l=s*(.00024978985622317937+s*(s*(.04196762233099861+s*(1*s-.27996033431034445))-.00413421406552171))-10185578841856403e-21),c/l),e-=al,e+=i,e/=i):n<=2?(e=1/(i=-i))+function(n){var e,r;return 0===n?.5772156649015329:((n<0?-n:n)<=1?(e=.5772156649015329+n*(.24321064694010716+n*(.04173646739882165+n*(.003902520870728433+n*(.0002496063671518772+1101084409767329e-20*n)))),r=1+n*(.29520127712663174+n*(.043460910607305496+n*(.004349305820858264+n*(.0002557842261404885+10991819782396113e-21*n))))):(e=1101084409767329e-20+(n=1/n)*(.0002496063671518772+n*(.003902520870728433+n*(.04173646739882165+n*(.24321064694010716+.5772156649015329*n)))),r=10991819782396113e-21+n*(.0002557842261404885+n*(.004349305820858264+n*(.043460910607305496+n*(.29520127712663174+1*n))))),e/r)}(i):n<=4?(e=fl+1/-i)+function(n){var e,r;return 0===n?-.053725830002359504:((n<0?-n:n)<=1?(e=n*(.04451634732923656+n*(.012867767353451996+n*(.0009754177045739176+n*(7698751015736541e-20+n*(3280325100003831e-21+0*n)))))-.053725830002359504,r=1+n*(.3338319455303405+n*(.048779843129140764+n*(.0047903970857355845+n*(.00027077670395633634+n*(10695186753205734e-21+2.3627662397497864e-8*n)))))):(e=0+(n=1/n)*(3280325100003831e-21+n*(7698751015736541e-20+n*(.0009754177045739176+n*(.012867767353451996+n*(.04451634732923656+-.053725830002359504*n))))),r=2.3627662397497864e-8+n*(10695186753205734e-21+n*(.00027077670395633634+n*(.0047903970857355845+n*(.048779843129140764+n*(.3338319455303405+1*n)))))),e/r)}(n-2):n<=7?(e=function(n){var e,r;return 0===n?-2.497101906022594:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(n*(0+n*(0+0*n))-22925731059489392e-21)-.007017212405498024)-.13844861799574154)-.9392604353771099)-2.600133018094757)-2.497101906022594,r=1+n*(.7060390259377451+n*(.15739599649558628+n*(.010611795097684508+n*(n*(49340956392759e-19+n*(n*(7.188337293654598e-9+-1.1292001134749475e-10*n)-2.3405548702528722e-7))-36910273311764616e-21))))):(e=0+(n=1/n)*(0+n*(0+n*(n*(n*(n*(n*(-2.497101906022594*n-2.600133018094757)-.9392604353771099)-.13844861799574154)-.007017212405498024)-22925731059489392e-21))),r=n*(7.188337293654598e-9+n*(n*(49340956392759e-19+n*(n*(.010611795097684508+n*(.15739599649558628+n*(.7060390259377451+1*n)))-36910273311764616e-21))-2.3405548702528722e-7))-1.1292001134749475e-10),e/r)}(n-4),1+Bu(e)):n<15?(e=function(n){var e,r;return 0===n?-4.785580284951356:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(.0011514092388917874+n*(6399492042131645e-20+n*(1393489324453249e-21+n*(0+0*n))))-.0001892047582600767)-.21140713487441282)-1.8919736488197254)-4.785580284951356,r=1+n*(.24434533737818856+n*(.008733707544922887+n*(n*(n*(n*(4.710012640030765e-9+n*(6998415452048457e-28*n-8333784406253855e-26))-21750464515767985e-22)-7437436828999331e-20)-.0011759276533443448)))):(e=0+(n=1/n)*(0+n*(1393489324453249e-21+n*(6399492042131645e-20+n*(.0011514092388917874+n*(n*(n*(-4.785580284951356*n-1.8919736488197254)-.21140713487441282)-.0001892047582600767))))),r=6998415452048457e-28+n*(n*(4.710012640030765e-9+n*(n*(n*(n*(.008733707544922887+n*(.24434533737818856+1*n))-.0011759276533443448)-7437436828999331e-20)-21750464515767985e-22))-8333784406253855e-26)),e/r)}(n-7),1+Bu(e)):n<36?(e=function(n){var e,r;return 0===n?-10.39489505733089:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(n*(-8.214657090954655e-9*n-7.855236337967234e-7)-3825293235079675e-20)-.001194591734169687)-.025115606465534634)-.34772826653924577)-2.858272196711067)-10.39489505733089,r=1+n*(.2081963335726719+n*(.019568765731720502+n*(.0011107963810248593+n*(40850774626603926e-21+n*(9.555611230656935e-7+n*(1.185071534740229e-8+2226094836273526e-30*n))))))):(e=(n=1/n)*(n*(n*(n*(n*(n*(-10.39489505733089*n-2.858272196711067)-.34772826653924577)-.025115606465534634)-.001194591734169687)-3825293235079675e-20)-7.855236337967234e-7)-8.214657090954655e-9,r=2226094836273526e-30+n*(1.185071534740229e-8+n*(9.555611230656935e-7+n*(40850774626603926e-21+n*(.0011107963810248593+n*(.019568765731720502+n*(.2081963335726719+1*n))))))),e/r)}(n-15),1+Bu(e)):1+ho(2,-n))}function cl(n){return Ie(n)?NaN:1===n?S:-Da(2,1-n)*sl(n)}var ll=.3183098861837907;function dl(n){var e,t,i,u,o,a;return a=n,n<0&&(a=n/(n-1),e=!0),0===a?_:1===a?r:a>1?NaN:(a<.1?o=function(n){return 0===n?1.5910034537907922:1.5910034537907922+n*(.41600074399178694+n*(.24579151426410342+n*(.17948148291490615+n*(.14455605708755515+n*(.12320099331242772+n*(.10893881157429353+n*(.09885340987159291+n*(.09143962920174975+n*(.0858425915954139+.08154111871830322*n)))))))))}(a-.05):a<.2?o=function(n){return 0===n?1.63525673226458:1.63525673226458+n*(.4711906261487323+n*(.3097284108314996+n*(.2522083117731357+n*(.22672562321968465+n*(.21577444672958598+n*(.21310877187734892+n*(.21602912460518828+n*(.2232558316330579+n*(.23418050129420992+n*(.24855768297226408+.26636380989261754*n))))))))))}(a-.15):a<.3?o=function(n){return 0===n?1.685750354812596:1.685750354812596+n*(.5417318486132803+n*(.40152443839069024+n*(.3696424734208891+n*(.37606071535458363+n*(.4052358870851259+n*(.45329438175399905+n*(.5205189476511842+n*(.609426039204995+n*(.7242635222829089+n*(.8710138477098124+1.057652872753547*n))))))))))}(a-.25):a<.4?o=function(n){return 0===n?1.7443505972256133:1.7443505972256133+n*(.6348642753719353+n*(.5398425641644455+n*(.5718927051937874+n*(.6702951362654062+n*(.8325865900109772+n*(1.0738574482479333+n*(1.4220914606754977+n*(1.9203871834023047+n*(2.6325525483316543+n*(3.6521097473190394+n*(5.115867135558866+7.224080007363877*n)))))))))))}(a-.35):a<.5?o=function(n){return 0===n?1.8138839368169826:1.8138839368169826+n*(.7631632457005573+n*(.7619286053215958+n*(.9510746536684279+n*(1.315180671703161+n*(1.9285606934774109+n*(2.9375093425313787+n*(4.594894405442878+n*(7.33007122188172+n*(11.871512597425301+n*(19.45851374822938+n*(32.20638657246427+n*(53.73749198700555+90.27388602941*n))))))))))))}(a-.45):a<.6?o=function(n){return 0===n?1.8989249102715535:1.8989249102715535+n*(.9505217946182445+n*(1.1510775899590158+n*(1.7502391069863006+n*(2.952676812636875+n*(5.285800396121451+n*(9.83248571665998+n*(18.787148683275596+n*(36.61468615273698+n*(72.45292395127771+n*(145.1079577347069+n*(293.4786396308497+n*(598.385181505501+n*(1228.4200130758634+2536.5297553827645*n)))))))))))))}(a-.55):a<.7?o=function(n){return 0===n?2.0075983984243764:2.0075983984243764+n*(1.2484572312123474+n*(1.9262346570764797+n*(3.7512896400875877+n*(8.119944554932045+n*(18.665721308735552+n*(44.603924842914374+n*(109.50920543094983+n*(274.2779548232414+n*(697.5598008606327+n*(1795.7160145002472+n*(4668.38171679039+n*(12235.762468136643+n*(32290.17809718321+n*(85713.07608195965+n*(228672.1890493117+612757.2711915852*n)))))))))))))))}(a-.65):a<.8?o=function(n){return 0===n?2.1565156474996434:2.1565156474996434+n*(1.7918056418494632+n*(3.8267512874657132+n*(10.386724683637972+n*(31.403314054680703+n*(100.92370394986955+n*(337.3268282632273+n*(1158.7079305678278+n*(4060.9907421936323+n*(14454.001840343448+n*(52076.661075994045+n*(189493.65914621568+n*(695184.5762413896+n*(2567994.048255285+n*(9541921.966748387+n*(35634927.44218076+n*(133669298.46120408+n*(503352186.68662846+n*(1901975729.53866+7208915015.330104*n))))))))))))))))))}(a-.75):a<.85?o=function(n){return 0===n?2.3181226217125106:2.3181226217125106+n*(2.6169201502912327+n*(7.897935075731356+n*(30.502397154466724+n*(131.48693655235286+n*(602.9847637356492+n*(2877.024617809973+n*(14110.519919151804+n*(70621.4408815654+n*(358977.266582531+n*(1847238.2637239718+n*(9600515.416049214+n*(50307677.08502367+n*(265444188.6527128+n*(1408862325.0287027+7515687935.373775*n))))))))))))))}(a-.825):a<.9?o=function(n){return 0===n?2.473596173751344:2.473596173751344+n*(3.727624244118099+n*(15.607393035549306+n*(84.12850842805888+n*(506.98181970406137+n*(3252.2770581451236+n*(21713.242419574344+n*(149037.04518909327+n*(1043999.3310899908+n*(7427974.817042039+n*(53503839.67558661+n*(389249886.99487084+n*(2855288351.1008105+n*(21090077038.76684+n*(156699833947.7902+n*(1170222242422.44+n*(8777948323668.9375+n*(66101242752484.95+n*(499488053713388.8+0x86813c6c7adde8*n))))))))))))))))))}(a-.875):(u=function(n){return 0===n?0:0+n*(.0625+n*(.03125+n*(.0205078125+n*(.01513671875+n*(.011934280395507812+n*(.009816169738769531+n*(.008315593004226685+n*(.007199153304100037+n*(.00633745662344154+n*(.00565311038371874+n*(.005097046040418718+n*(.004636680381850056+n*(.004249547423822886+.003919665602267974*n)))))))))))))}(i=1-a),t=function(n){return 0===n?1.5910034537907922:1.5910034537907922+n*(.41600074399178694+n*(.24579151426410342+n*(.17948148291490615+n*(.14455605708755515+n*(.12320099331242772+n*(.10893881157429353+n*(.09885340987159291+n*(.09143962920174975+n*(.0858425915954139+.08154111871830322*n)))))))))}(i-.05),o=-Qr(u)*(t*ll)),e?o/ke(1-n):o)}function vl(n){var e,r,t,i,u,o,a;return a=n,n<0&&(a=n/(n-1),e=!0),0===a?_:1===a?1:a>1?NaN:(a<.1?o=function(n){return 0===n?1.5509733517804722:1.5509733517804722+n*(n*(n*(n*(n*(n*(n*(n*(-.004809187786009338*n-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(a-.05):a<.2?o=function(n){return 0===n?1.5101218320928198:1.5101218320928198+n*(n*(n*(n*(n*(n*(n*(n*(n*(-.011197445703074968*n-.011799303775587354)-.012759847429264804)-.01426196082884252)-.016650786739707237)-.020644781177568104)-.027965493064761784)-.04372994401908431)-.09012382040477457)-.41711633390586755)}(a-.15):a<.3?o=function(n){return 0===n?1.4674622093394272:1.4674622093394272+n*(n*(n*(n*(n*(n*(n*(n*(n*(-.03478996038640416*n-.03237139531475812)-.0309169840192389)-.030527000890325277)-.031495443512532785)-.03452772850528084)-.04139162772734022)-.05737184359324173)-.10515555766694255)-.43657629094633776)}(a-.25):a<.4?o=function(n){return 0===n?1.4226911334908792:1.4226911334908792+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-.1607911206912746*n-.12705358515769605)-.102539850131046)-.084959075171781)-.07279389536257878)-.06519703281557247)-.06208433913173031)-.06471427847205)-.07813854509440948)-.12525053982206188)-.4595135196210487)}(a-.35):a<.5?o=function(n){return 0===n?1.3754019718711163:1.3754019718711163+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-1.3088332057585401*n-.8605232357272398)-.5757544060278792)-.39351311430437586)-.27617433306775174)-.20049532364269734)-.15221716396203505)-.12295422312026907)-.10884095252313576)-.11184944491702783)-.15331170134854022)-.4872021832731848)}(a-.45):a<.6?o=function(n){return 0===n?1.3250244979582302:1.3250244979582302+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-11.97703130208884*n-6.446753640156048)-3.5316967730957227)-1.9767211439543984)-1.1363431218392293)-.675948400853106)-.42069845728100574)-.27879895311853475)-.20275465292641914)-.17162372682201127)-.19490643048212622)-.5217276475575667)}(a-.55):a<.7?o=function(n){return 0===n?1.2707074796501499:1.2707074796501499+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-1137.38082216936*n-463.5938853480342)-191.34894807629848)-80.15895841905397)-34.18120574251449)-14.89436036517319)-6.6675959033810015)-3.089708310445187)-1.498870837987561)-.7749476413813975)-.4403978408504232)-.2922441735330774)-.2621607934324926)-.5668391682878666)}(a-.65):a<.8?o=function(n){return 0===n?1.2110560275684594:1.2110560275684594+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-1104011.3443115912*n-315126.04064491636)-90799.48341621365)-26448.19586059192)-7801.945954775964)-2336.1253314403966)-712.1364793277636)-221.879685319235)-71.04099935893065)-23.55507217389693)-8.18168822157359)-3.0320566617452474)-1.23755558451305)-.5922782353119346)-.38716640952066916)-.6303064132874558)}(a-.75):a<.85?o=function(n){return 0===n?1.1613071521962828:1.1613071521962828+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-1920033.4136826345*n-396650.4505013548)-83182.69029154233)-17761.7071017094)-3877.0058473132895)-869.8602699308701)-202.18187354340904)-49.25672530759985)-12.815909243378957)-3.679383613496635)-1.2436930610777865)-.5805514744654373)-.7011002845552895)}(a-.825):a<.9?o=function(n){return 0===n?1.1246173251197522:1.1246173251197522+n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(n*(-36409256888.1214*n-5198725846.725541)-749380758.1942496)-109209938.52030899)-16120097.815816568)-2415611.0887010912)-368596.11674161063)-57502.51612140314)-9222.313478526092)-1532.66588382523)-267.09866751957054)-49.7490054655148)-10.239717411543843)-2.4900973094503946)-.8447940536449113)-.7708450563609095)}(a-.875):(r=function(n){return 0===n?1.5910034537907922:1.5910034537907922+n*(.41600074399178694+n*(.24579151426410342+n*(.17948148291490615+n*(.14455605708755515+n*(.12320099331242772+n*(.10893881157429353+n*(.09885340987159291+n*(.09143962920174975+n*(.0858425915954139+.08154111871830322*n)))))))))}(i=.95-a),t=function(n){return 0===n?1.5509733517804722:1.5509733517804722+n*(n*(n*(n*(n*(n*(n*(n*(-.004809187786009338*n-.00580742401295609)-.007246728512402157)-.009442372874146548)-.01305950773199331)-.0197180433173655)-.034318853117591995)-.07849861944294194)-.4003010201031985)}(i),u=dl(a),o=(_+u*(r-t))/r),e?o*ke(1-n):o)}var ml=Df("elilpj:assign"),pl=[0,0,0,0],gl=[0,0],hl=[0,0,0,0,0,0,0,0,0];function bl(n,e,r,t,i){var u,o,a,f,s,c,l,d,v,m,g,h,b,j,N,y,x,w,E,T,O,k,q,V,S,_,B,I;if(e<0)j=-e/(1-e),bl(n*(f=ke(1-e)),j,pl,1,0),w=pl[0]/pl[2]/f,E=pl[1]/pl[2],T=1/pl[2],O=NaN;else if(e>1)bl(n*(k=ke(e)),1/e,pl,1,0),w=pl[0]/k,E=pl[2],T=pl[1],O=NaN;else if(0===e)Pi(n,gl,1,0),w=gl[0],E=gl[1],T=1,O=n;else if(1===e)w=Bc(n),T=E=1/bc(n),O=et(Gc(n));else if(e1-un)g=(b=(a=n/(N=2*dl(e))+.5)%4)>=1&&b<2,c=Gc(h=N*(a%1-.5)),s=1/bc(h),w=(l=Bc(h))+(B=(_=.25*(1-e))*(c-h*s))*s,E=s-B*l,T=s+_*(c+h*s)*l,O=qe(a)*C+et(c)+B,g&&(w=-w,E=-E);else{_=1,B=ke(1-e),I=-1,o=!1;do{if((I+=1)>8){o=!0,w=NaN,E=NaN,T=NaN,O=NaN,ml("Warning: Overflow encountered in iteration. Returning NaN for all output values.");break}m=.5*(_+B),V=.5*(_-B),B=ke(_*B),_=m,hl[I]=V/_}while(hl[I]>=p);if(!o){for(v=n*_*(1<1;)v=.5*(v+br(hl[I-=1]*Lo(v)));Pi(O=d=.5*(v+br(hl[0]*Lo(v))),gl,1,0),w=gl[0],E=gl[1],T=Je(u=na(v-d))<.1?ke(1-e*w*w):E/u}}return r[i]=w,r[i+t]=E,r[i+2*t]=T,r[i+3*t]=O,r}function jl(n,e){return bl(n,e,[0,0,0,0],1,0)}var Nl=[0,0,0,0];var yl=[0,0,0,0];var xl=[0,0,0,0];var wl=[0,0,0,0];x(jl,"assign",bl),x(jl,"sn",(function(n,e){return bl(n,e,Nl,1,0),Nl[0]})),x(jl,"cn",(function(n,e){return bl(n,e,yl,1,0),yl[1]})),x(jl,"dn",(function(n,e){return bl(n,e,xl,1,0),xl[2]})),x(jl,"am",(function(n,e){return bl(n,e,wl,1,0),wl[3]}));var El=1e-300,Tl=2848094538889218e-321,Ol=3.725290298461914e-9,kl=.8450629115104675,ql=.1283791670955126,Vl=1.0270333367641007,Sl=.12837916709551256,_l=1,Bl=-.0023621185607526594,Il=1,Ml=-.009864944034847148,Pl=1,Al=-.0098649429247001,Fl=1;function Rl(n){var e,i,u,o,a,f,s;return Ie(n)?NaN:n===r?1:n===t?-1:0===n?n:(n<0?(e=!0,i=-n):(e=!1,i=n),i<.84375?i=6?e?El-1:1-El:(a=1/(i*i),i<2.857142857142857?(o=Ml+a*function(n){return 0===n?-.6938585727071818:n*(n*(n*(n*(n*(-9.814329344169145*n-81.2874355063066)-184.60509290671104)-162.39666946257347)-62.375332450326006)-10.558626225323291)-.6938585727071818}(a),a=Pl+a*function(n){return 0===n?19.651271667439257:19.651271667439257+n*(137.65775414351904+n*(434.56587747522923+n*(645.3872717332679+n*(429.00814002756783+n*(108.63500554177944+n*(6.570249770319282+-.0604244152148581*n))))))}(a)):(o=Al+a*function(n){return 0===n?-.799283237680523:n*(n*(n*(n*(-483.5191916086514*n-1025.0951316110772)-637.5664433683896)-160.63638485582192)-17.757954917754752)-.799283237680523}(a),a=Fl+a*function(n){return 0===n?30.33806074348246:30.33806074348246+n*(325.7925129965739+n*(1536.729586084437+n*(3199.8582195085955+n*(2553.0504064331644+n*(474.52854120695537+-22.44095244658582*n)))))}(a)),o=Bu(-(u=Q(i,0))*u-.5625)*Bu((u-i)*(u+i)+o/a),e?o/i-1:1-o/i))}var Cl=[function(n){return.0007087803245410644+(.000712340910470263+(35779077297597742e-22+(1.7403143962587938e-8+(8171066004730779e-26+(3688502236043496e-28+15917038551111112e-31*n)*n)*n)*n)*n)*n},function(n){return.0021479143208285143+(.0007268640236737999+(36843175430938994e-22+(1.80718412721492e-8+(8549644929604033e-26+(3885203751853429e-28+16868473576888889e-31*n)*n)*n)*n)*n)*n},function(n){return.0036165255935630175+(.0007418209232355551+(3794831995752824e-21+(1.8771627021793087e-8+(8948471512241509e-26+(4093585851777244e-28+1787206146488889e-30*n)*n)*n)*n)*n)*n},function(n){return.005115498386003198+(.0007572284073479166+(390964257267357e-20+(1.950416870430047e-8+(93687503063179e-24+(43143925959079665e-29+18939926435555556e-31*n)*n)*n)*n)*n)*n},function(n){return.006645751317267305+(.0007731040605444745+(4028951058939944e-21+(2.0271233238288382e-8+(981176313217091e-25+(4548420740601775e-28+2007635221333333e-30*n)*n)*n)*n)*n)*n},function(n){return.008208238997024121+(.0007894662961188171+(4152970155262265e-21+(2.1074693344544657e-8+(1.0278874108587318e-10+(4796520139061334e-28+21285907413333335e-31*n)*n)*n)*n)*n)*n},function(n){return.009803953727535219+(.0008063344010834284+(4281924132973699e-21+(2.1916534346907168e-8+(1.0771535136565471e-10+(5059597262369282e-28+22573462684444446e-31*n)*n)*n)*n)*n)*n},function(n){return.011433927298290302+(.0008237285838319657+(4416049531176544e-21+(2.2798861426211987e-8+(1.129129174587924e-10+(5338618936581688e-28+23944209546666666e-31*n)*n)*n)*n)*n)*n},function(n){return.013099232878814654+(.0008416700246790696+(4555595898845751e-21+(2.3723907357214174e-8+(1.1839789326602696e-10+(5634616306755024e-28+25403679644444446e-31*n)*n)*n)*n)*n)*n},function(n){return.014800987015587536+(.0008601809294634594+(4700826584881687e-21+(2.4694040760197315e-8+(1.2418779768752298e-10+(5948689037032026e-28+2695776456888889e-30*n)*n)*n)*n)*n)*n},function(n){return.01654035173939407+(.0008792845864124146+(4852019579300175e-21+(2.571177490088171e-8+(1.3030128534230821e-10+(6282009758687478e-28+28612737351111112e-31*n)*n)*n)*n)*n)*n},function(n){return.018318536789842393+(.0008990054264789172+(5009468408955337e-21+(2.677977707421807e-8+(1.3675822186304616e-10+(6635828774535271e-28+30375273884444443e-31*n)*n)*n)*n)*n)*n},function(n){return.020136801964214277+(.0009193690873767368+(51734830914104276e-22+(2.7900878609710433e-8+(1.435797640280904e-10+(7011479031104373e-28+32252476e-22*n)*n)*n)*n)*n)*n},function(n){return.021996459598282742+(.0009404024815536678+(5344391150804117e-21+(2.9078085538049375e-8+(1.507884450032973e-10+(741038136474992e-27+3425189232e-24*n)*n)*n)*n)*n)*n},function(n){return.02389887718722632+(.0009621338683590018+(55225386998049015e-22+(3.0314589961047687e-8+(1.5840826497296334e-10+(7834050047241445e-28+36381553564444445e-31*n)*n)*n)*n)*n)*n},function(n){return.025845480155298518+(.0009845929306782012+(5708291592005185e-21+(3.161378216916483e-8+(1.664647874552963e-10+(828409859287854e-27+3864997576888889e-30*n)*n)*n)*n)*n)*n},function(n){return.027837754783474698+(.0010078108563256892+(59020366493792216e-22+(3.297926355324652e-8+(1.7498524159268457e-10+(8762245912484253e-28+4106620648888889e-30*n)*n)*n)*n)*n)*n},function(n){return.029877251304899308+(.001031820424505735+(6104182969716206e-21+(3.441486035954272e-8+(1.839986307293409e-10+(9270322736636504e-28+43639844053333335e-31*n)*n)*n)*n)*n)*n},function(n){return.03196558717859645+(.0010566560976716574+(6315163319241458e-21+(3.592463833952192e-8+(1.9353584758781173e-10+(9810278385988926e-28+46381060817777776e-31*n)*n)*n)*n)*n)*n},function(n){return.03410445055258834+(.0010823541191350532+(6535435615955393e-21+(3.7512918348533524e-8+(2.0362979635817883e-10+(10384187833037281e-28+4930062526222222e-30*n)*n)*n)*n)*n)*n},function(n){return.036295603928292425+(.0011089526167995269+(6765484509551836e-21+(3.918429294991359e-8+(2.1431552202133775e-10+(10994259106646732e-28+5240994910222222e-30*n)*n)*n)*n)*n)*n},function(n){return.03854088803884051+(.001136491713417542+(7005823064124631e-21+(4.0943644083718584e-8+(2.2563034723692883e-10+(11642841011361993e-28+5572109287111111e-30*n)*n)*n)*n)*n)*n},function(n){return.04084222595478596+(.0011650136437945675+(72569945502343e-19+(4.279616186185504e-8+(2.3761401711005023e-10+(12332431172381557e-28+5924680236444444e-30*n)*n)*n)*n)*n)*n},function(n){return.04320162743154022+(.0011945628793917271+(751957435328492e-20+(4.474736455396099e-8+(2.503088521647295e-10+(13065684400300477e-28+6300053285333334e-30*n)*n)*n)*n)*n)*n},function(n){return.04562119351381047+(.001225186260806753+(7794172005555192e-21+(4.680311983095446e-8+(2.6375990983978426e-10+(1384542137097712e-27+66996477404444446e-31*n)*n)*n)*n)*n)*n},function(n){return.048103121413299865+(.0012569331386432195+(8081433349636768e-21+(4.896966733568202e-8+(2.7801515481905746e-10+(14674637611609885e-28+7124958935111111e-30*n)*n)*n)*n)*n)*n},function(n){return.05064970967698334+(.0012898555233099055+(838204284145688e-20+(5.125364265255184e-8+(2.9312563849675507e-10+(15556512782814827e-28+7577560782222223e-30*n)*n)*n)*n)*n)*n},function(n){return.053263363664388864+(.0013240082443256975+(8696726001500767e-21+(5.36621027503968e-8+(3.09145687866348e-10+(16494420240828494e-28+8059107964444444e-30*n)*n)*n)*n)*n)*n},function(n){return.05594660135350001+(.001359449119740819+(9026252023301638e-21+(5.6202552975056696e-8+(3.261331041050314e-10+(17491936862246368e-28+8571338168888888e-30*n)*n)*n)*n)*n)*n},function(n){return.058702059496154084+(.0013962391363223647+(9371436548731279e-21+(5.8882975670265285e-8+(3.4414937110591756e-10+(1855285310975186e-27+911607367111111e-29*n)*n)*n)*n)*n)*n},function(n){return.061532500145144775+(.0014344426411912014+(9733144620101681e-21+(6.171186050734718e-8+(3.63259874182953e-10+(19681183310134517e-28+969522384e-23*n)*n)*n)*n)*n)*n},function(n){return.06444081757665329+(.0014741275456383132+(10112293819576438e-21+(6.469823660593325e-8+(3.8353412915303665e-10+(2088117611438512e-27+1031078448e-23*n)*n)*n)*n)*n)*n},function(n){return.06743004563313039+(.001515365541891654+(10509857606888329e-21+(6.785170652936334e-8+(4.050460219481114e-10+(22157325110542536e-28+10964842115555555e-30*n)*n)*n)*n)*n)*n},function(n){return.07050336551333886+(.001558232333649571+(1092686886686523e-20+(7.118248223961351e-8+(4.2787405890153386e-10+(2351437952227442e-27+11659571751111111e-30*n)*n)*n)*n)*n)*n},function(n){return.0736641140379446+(.001602807881243882+(11364423678778208e-21+(7.470142309742318e-8+(4.521016277747649e-10+(2495735500408857e-27+12397238257777777e-30*n)*n)*n)*n)*n)*n},function(n){return.07691579242081956+(.0016491766623447889+(11823685320041301e-21+(7.842007599378154e-8+(4.778172695691648e-10+(26491544403815725e-28+13180196462222222e-30*n)*n)*n)*n)*n)*n},function(n){return.08026207557809462+(.0016974279491709504+(12305888517309891e-21+(8.235071769897904e-8+(5.051149610985711e-10+(281225284976269e-26+14010889635555555e-30*n)*n)*n)*n)*n)*n},function(n){return.08370682200898036+(.0017476561032212657+(12812343958540764e-21+(8.650639951503644e-8+(5.340944082386946e-10+(29856186620887555e-28+1489185159111111e-29*n)*n)*n)*n)*n)*n},function(n){return.08725408428446171+(.0017999608886001962+(13344443080089493e-21+(9.0900994316429e-8+(5.648613497261646e-10+(3169870708003396e-27+15825697795555556e-30*n)*n)*n)*n)*n)*n},function(n){return.09090812018217274+(.00185444780506577+(1390366314342612e-20+(9.554924606254991e-8+(5.975278712524205e-10+(336565973660991e-26+16815130613333334e-30*n)*n)*n)*n)*n)*n},function(n){return.09467340450807549+(.0019112284419887304+(14491572616545005e-21+(1.0046682186333614e-7+(6.3221272959791e-10+(3573669397558913e-27+1786293159111111e-29*n)*n)*n)*n)*n)*n},function(n){return.09855464164800445+(.0019704208544725622+(15109836875625445e-21+(1.0567036667675984e-7+(6.690416864001935e-10+(3794617185082434e-27+1897195904e-23*n)*n)*n)*n)*n)*n},function(n){return.1025567788947009+(.0020321499629472857+(1576022424296218e-20+(1.1117756071353507e-7+(7.081478511009766e-10+(4029255327663256e-27+20145143075555556e-30*n)*n)*n)*n)*n)*n},function(n){return.10668502059865094+(.002096547977614873+(16444612377624982e-21+(1.1700717962026153e-7+(7.496720325093842e-10+(42783716186085925e-28+2138547936e-23*n)*n)*n)*n)*n)*n},function(n){return.11094484319386444+(.002163754849190817+(17164995035719656e-21+(1.2317915750735938e-7+(7.937630983149963e-10+(4542790176310636e-27+22696025653333333e-30*n)*n)*n)*n)*n)*n},function(n){return.11534201115268805+(.002233918747454642+(17923489217504226e-21+(1.2971465288245997e-7+(8.405783418038907e-10+(48233721206418025e-28+24079890062222222e-30*n)*n)*n)*n)*n)*n},function(n){return.11988259392684095+(.002307196569191869+(18722342718958937e-21+(1.3663611754337958e-7+(8.902838548849328e-10+(5121016156922585e-27+2554022711111111e-29*n)*n)*n)*n)*n)*n},function(n){return.12457298393509812+(.0023837544771809576+(1956394210571161e-20+(1.439673684773947e-7+(9.430549064645925e-10+(5436659058313422e-27+2708022592e-23*n)*n)*n)*n)*n)*n},function(n){return.12941991566142438+(.002463768471950886+(2045082112747588e-20+(1.5173366280523906e-7+(9.990763250638903e-10+(5771276031135163e-27+28703099555555555e-30*n)*n)*n)*n)*n)*n},function(n){return.13443048593088697+(.0025474249981080823+(21385669591362916e-21+(1.5996177579900442e-7+(1.0585428844575133e-9+(6125880953678788e-27+3041208014222222e-29*n)*n)*n)*n)*n)*n},function(n){return.13961217543434562+(.0026349215871051762+(22371342712572568e-21+(1.6868008199296823e-7+(1.1216596910444997e-9+(6501526475309089e-27+3221039450666667e-29*n)*n)*n)*n)*n)*n},function(n){return.144972871576738+(.002726467538398244+(2341087096105095e-20+(1.7791863939526378e-7+(1.1886425714330958e-9+(68993039665054284e-28+34101266222222225e-30*n)*n)*n)*n)*n)*n},function(n){return.15052089272774619+(.0028222846410136237+(24507470422713398e-21+(1.8770927679626137e-7+(1.259718458758337e-9+(7320343304922983e-27+36087889048888887e-30*n)*n)*n)*n)*n)*n},function(n){return.1562650139577461+(.0029226079376196627+(2566455369376845e-20+(1.9808568415654462e-7+(1.3351257759815557e-9+(7765812489104676e-27+3817342003555556e-29*n)*n)*n)*n)*n)*n},function(n){return.16221449434620738+(.0030276865332726477+(26885741326534563e-21+(2.0908350604346383e-7+(1.415114814424073e-9+(8236917066597432e-27+4036095745777778e-29*n)*n)*n)*n)*n)*n},function(n){return.1683791059541213+(.0031377844510793083+(28174873844911173e-21+(2.2074043807045782e-7+(1.499948105599609e-9+(8734899366193081e-27+4265352897777778e-29*n)*n)*n)*n)*n)*n},function(n){return.1747691645565937+(.0032531815370903066+(29536024347344365e-21+(2.3309632627767074e-7+(1.5899007843582445e-9+(9261037523542736e-27+45054073102222224e-30*n)*n)*n)*n)*n)*n},function(n){return.18139556223643702+(.0033741744168097+(309735117147095e-19+(2.461932693759229e-7+(1.6852609412267751e-9+(981664429428549e-26+4756541809777778e-29*n)*n)*n)*n)*n)*n},function(n){return.18826980194443665+(.0035010775057740316+(3249191444001427e-20+(2.600757237588632e-7+(1.7863299617388377e-9+(10403065638343878e-27+5019026583111111e-29*n)*n)*n)*n)*n)*n},function(n){return.19540403413693969+(.0036342240767211326+(34096085096200906e-21+(2.7479061117017636e-7+(1.8934228504790033e-9+(11021679075323599e-27+5293117173333333e-29*n)*n)*n)*n)*n)*n},function(n){return.20281109560651886+(.00377396738593236+(3579116545759241e-20+(2.9038742889416174e-7+(2.0068685374849e-9+(11673891799578381e-27+55790523093333335e-30*n)*n)*n)*n)*n)*n},function(n){return.21050455062669335+(.003920681861392565+(37582602289680105e-21+(3.0691836231886877e-7+(2.1270101645763676e-9+(12361138551062899e-27+5877052016e-23*n)*n)*n)*n)*n)*n},function(n){return.21849873453703333+(.004074764355468959+(3947616382098671e-20+(3.244383997013992e-7+(2.254205349151868e-9+(13084879235290859e-27+6187315326222222e-29*n)*n)*n)*n)*n)*n},function(n){return.2268087999004323+(.004236635464862852+(41477956909656896e-21+(3.430054489450281e-7+(2.3888264229264067e-9+(13846596292818514e-27+6510018375111112e-29*n)*n)*n)*n)*n)*n},function(n){return.23545076536988704+(.004406740920636517+(435944449162247e-19+(3.6268045617760415e-7+(2.53126064308532e-9+(14647791812837902e-27+6845312263111111e-29*n)*n)*n)*n)*n)*n},function(n){return.24444156740777434+(.004585553051160578+(45832466292683086e-21+(3.835275259003303e-7+(2.6819103733055602e-9+(15489984390884758e-27+7193320636444444e-29*n)*n)*n)*n)*n)*n},function(n){return.25379911500634267+(.004773572320865003+(48199253896534185e-21+(4.0561404245564733e-7+(2.8411932320871164e-9+(1637470573645832e-26+7554137982222222e-29*n)*n)*n)*n)*n)*n},function(n){return.26354234756393613+(.0049713289477083785+(5070245503693037e-20+(4.2901079254268185e-7+(3.009542205890048e-9+(1730349702534734e-26+7927827336888888e-29*n)*n)*n)*n)*n)*n},function(n){return.27369129607732345+(.005179384602305264+(533501522583266e-19+(4.537920884886502e-7+(3.187405724581438e-9+(1827790501024511e-26+8314418236444444e-29*n)*n)*n)*n)*n)*n},function(n){return.28426714781640317+(.005398334191669514+(5615088486525581e-20+(4.800358919649474e-7+(3.3752476967570798e-9+(19299477888083468e-27+8713904913777777e-29*n)*n)*n)*n)*n)*n},function(n){return.2952923146534852+(.0056288077305420795+(5911367118991331e-20+(5.078239378174484e-7+(3.5735475025851714e-9+(2036976093701707e-26+9126244261333333e-29*n)*n)*n)*n)*n)*n},function(n){return.3067905052252884+(.00587147230327454+(6224803160219768e-20+(5.372418576620094e-7+(3.782799941896024e-9+(2149029193044454e-26+9551353918222223e-29*n)*n)*n)*n)*n)*n},function(n){return.3187868011117332+(.00612703411923391+(6556401225970764e-20+(5.683793028783774e-7+(4.003515135339238e-9+(22662596341239295e-27+9989110976e-23*n)*n)*n)*n)*n)*n},function(n){return.33130773722152623+(.006396240664679808+(690722095929424e-19+(6.013300666188594e-7+(4.236218376588347e-9+(23888182347073697e-27+10439349811555555e-29*n)*n)*n)*n)*n)*n},function(n){return.34438138658041334+(.0066798829540414+(7278379551860356e-20+(6.36192204432288e-7+(4.481449933651445e-9+(25168535651285476e-27+10901861383111111e-29*n)*n)*n)*n)*n)*n},function(n){return.35803744972380175+(.006978797883488269+(7671054337145482e-20+(6.730681530891739e-7+(4.739764797584523e-9+(2650511414114305e-26+11376390933333332e-29*n)*n)*n)*n)*n)*n},function(n){return.37230734890119727+(.007293870689646138+(8086485454267072e-20+(7.120648471806269e-7+(5.0117323769745884e-9+(27899342394100073e-27+11862637614222222e-29*n)*n)*n)*n)*n)*n},function(n){return.3872243273055545+(.00762603751625498+(8525978581000461e-20+(7.532938330517133e-7+(5.297936136838812e-9+(2935260605416409e-26+12360253370666666e-29*n)*n)*n)*n)*n)*n},function(n){return.4028235535461694+(.007976288091502973+(8990907734243825e-20+(7.968713796195619e-7+(5.5989731807360405e-9+(30866246101464866e-27+12868841946666668e-29*n)*n)*n)*n)*n)*n},function(n){return.4191422315891379+(.008345668518695046+(9482718135925016e-20+(8.429185856178314e-7+(5.915453775108349e-9+(3244155303434747e-26+1338795794311111e-28*n)*n)*n)*n)*n)*n},function(n){return.43621971639463786+(.00873528418282895+(.000100029291420668+(8.915614828021988e-7+(6.24800081507886e-9+(3407976098345888e-26+13917107176888888e-29*n)*n)*n)*n)*n)*n},function(n){return.4540976354853433+(.009146302775554824+(.00010553137232446167+(9.429311346463863e-7+(6.597249231221996e-9+(35782041795476564e-27+14455745872e-23*n)*n)*n)*n)*n)*n},function(n){return.4728200166851233+(.009579957440886046+(.00011135019058000067+(9.971637300550903e-7+(6.963845336995697e-9+(37549499088161346e-27+1500328071288889e-28*n)*n)*n)*n)*n)*n},function(n){return.4924334222717984+(.010037550043909497+(.00011750334542845235+(10544006716188967e-22+(7.348446116824222e-9+(3938316232643575e-26+15559069118222223e-29*n)*n)*n)*n)*n)*n},function(n){return.5129870897920926+(.010520454564612427+(.00012400930037494997+(11147886579371265e-22+(7.75171845505687e-9+(41283980931872625e-27+1612241968e-22*n)*n)*n)*n)*n)*n},function(n){return.5345330797910137+(.011030120618800727+(.0001308874151957227+(11784797595374515e-22+(8.174338306304482e-9+(43252818449517084e-27+1669259264e-22*n)*n)*n)*n)*n)*n},function(n){return.557126430711693+(.011568077107929736+(.00013815797838036652+(12456314879260905e-22+(8.616989807896932e-9+(4529044681153965e-26+17268801084444443e-29*n)*n)*n)*n)*n)*n},function(n){return.5808253212251933+(.012135935999503878+(.0001458422399666584+(1316406857309571e-21+(9.080364335510602e-9+(4739754071312462e-26+1785021160888889e-28*n)*n)*n)*n)*n)*n},function(n){return.6056912402529337+(.01273539623952555+(.00015396244472258864+(13909744385382817e-22+(9.565159503230623e-9+(4957467212766904e-26+18435945564444444e-29*n)*n)*n)*n)*n)*n},function(n){return.6317891649471572+(.013368247798287032+(.00016254186562762076+(14695084048334055e-22+(1.0072078109604152e-8+(5182230499568071e-26+19025081422222223e-29*n)*n)*n)*n)*n)*n},function(n){return.6591877468972532+(.014036375850601992+(.00017160483760259707+(15521885688723188e-22+(1.060182703153528e-8+(5414079010583752e-26+19616655146666667e-29*n)*n)*n)*n)*n)*n},function(n){return.6879595068317443+(.014741765091365868+(.00018117679143520433+(16392004108230584e-22+(1.1155116068018043e-8+(5653036019492569e-26+20209663662222222e-29*n)*n)*n)*n)*n)*n},function(n){return.7181810380872997+(.015486504187117112+(.00019128428784550924+(17307350969359975e-22+(1.1732656736113608e-8+(5899112528756384e-26+20803065333333334e-29*n)*n)*n)*n)*n)*n},function(n){return.7499332191172625+(.016272790364044783+(.00020195505163377912+(18269894883203348e-22+(1.2335161021630225e-8+(6152306831216908e-26+21395783431111112e-29*n)*n)*n)*n)*n)*n},function(n){return.7833014353128349+(.01710293413265243+(.00021321800585063328+(19281661395543912e-22+(1.2963340087354342e-8+(6412604099806635e-26+21986708942222223e-29*n)*n)*n)*n)*n)*n},function(n){return.8183758104102381+(.017979364149044223+(.0002251033059275313+(20344732868018175e-22+(1.361790294183995e-8+(6679976008397248e-26+2257470126222222e-28*n)*n)*n)*n)*n)*n},function(n){return.8552514477568512+(.01890463221254756+(.00023764237370371255+(2146124825130639e-21+(1.4299555071870523e-8+(6954380386469418e-26+23158593688888887e-29*n)*n)*n)*n)*n)*n},function(n){return.8940286817084994+(.0198814183991272+(.00025086793128395994+(22633402747585233e-22+(1.500899704211653e-8+(7235760907504394e-26+23737194737777777e-29*n)*n)*n)*n)*n)*n},function(n){return.9348133394287079+(.02091253632978037+(.0002648140346599848+(23863447359754924e-22+(1.5746923065472183e-8+(7524046814172015e-26+24309291271111114e-29*n)*n)*n)*n)*n)*n},function(n){return.9777170133588503+(.02200093857283048+(.0002795161070268238+(25153688325245316e-22+(1.651401954782282e-8+(7819152682936823e-26+24873652355555557e-29*n)*n)*n)*n)*n)*n},function(){return 1}];function Ll(n){var e=qe(n);return(0,Cl[e])(2*n-(2*e+1))}var zl=.5641895835477563;var Dl=.08913147449493408,Ul=2.249481201171875,Zl=.807220458984375,Gl=.9399557113647461,Hl=.9836282730102539;function Wl(n){var e,i,u,o,a;return Ie(n)?NaN:1===n?r:-1===n?t:0===n?n:n>1||n<-1?NaN:(n<0?(e=-1,i=-n):(e=1,i=n),u=1-i,i<=.5?(o=i*(i+10),a=function(n){var e,r;return 0===n?-.0005087819496582806:((n<0?-n:n)<=1?(e=n*(n*(.03348066254097446+n*(n*(n*(.02198786811111689+n*(.008226878746769157+n*(n*(0+0*n)-.005387729650712429)))-.03656379714117627)-.012692614766297404))-.008368748197417368)-.0005087819496582806,r=1+n*(n*(n*(1.5622155839842302+n*(.662328840472003+n*(n*(n*(.07952836873415717+n*(.0008862163904564247*n-.0023339375937419))-.05273963823400997)-.7122890234154284)))-1.5657455823417585)-.9700050433032906)):(e=0+(n=1/n)*(0+n*(n*(.008226878746769157+n*(.02198786811111689+n*(n*(n*(.03348066254097446+n*(-.0005087819496582806*n-.008368748197417368))-.012692614766297404)-.03656379714117627)))-.005387729650712429)),r=.0008862163904564247+n*(n*(.07952836873415717+n*(n*(n*(.662328840472003+n*(1.5622155839842302+n*(n*(1*n-.9700050433032906)-1.5657455823417585)))-.7122890234154284)-.05273963823400997))-.0023339375937419)),e/r)}(i),e*(o*Dl+o*a)):u>=.25?(o=ke(-2*Qr(u)),a=function(n){var e,r;return 0===n?-.20243350835593876:((n<0?-n:n)<=1?(e=n*(.10526468069939171+n*(8.3705032834312+n*(17.644729840837403+n*(n*(n*(17.445385985570866+n*(21.12946554483405+-3.6719225470772936*n))-44.6382324441787)-18.851064805871424))))-.20243350835593876,r=1+n*(6.242641248542475+n*(3.971343795334387+n*(n*(n*(48.560921310873994+n*(10.826866735546016+n*(1.7211476576120028*n-22.643693341313973)))-20.14326346804852)-28.66081804998)))):(e=(n=1/n)*(21.12946554483405+n*(17.445385985570866+n*(n*(n*(17.644729840837403+n*(8.3705032834312+n*(.10526468069939171+-.20243350835593876*n)))-18.851064805871424)-44.6382324441787)))-3.6719225470772936,r=1.7211476576120028+n*(n*(10.826866735546016+n*(48.560921310873994+n*(n*(n*(3.971343795334387+n*(6.242641248542475+1*n))-28.66081804998)-20.14326346804852)))-22.643693341313973)),e/r)}(u-=.25),e*(o/(Ul+a))):(u=ke(-Qr(u)))<3?(a=function(n){var e,r;return 0===n?-.1311027816799519:((n<0?-n:n)<=1?(e=n*(n*(.11703015634199525+n*(.38707973897260434+n*(.3377855389120359+n*(.14286953440815717+n*(.029015791000532906+n*(.0021455899538880526+n*(n*(2.8522533178221704e-8+-6.81149956853777e-10*n)-6.794655751811263e-7)))))))-.16379404719331705)-.1311027816799519,r=1+n*(3.4662540724256723+n*(5.381683457070069+n*(4.778465929458438+n*(2.5930192162362027+n*(.848854343457902+n*(.15226433829533179+n*(.011059242293464892+n*(0+n*(0+0*n)))))))))):(e=(n=1/n)*(2.8522533178221704e-8+n*(n*(.0021455899538880526+n*(.029015791000532906+n*(.14286953440815717+n*(.3377855389120359+n*(.38707973897260434+n*(.11703015634199525+n*(-.1311027816799519*n-.16379404719331705)))))))-6.794655751811263e-7))-6.81149956853777e-10,r=0+n*(0+n*(0+n*(.011059242293464892+n*(.15226433829533179+n*(.848854343457902+n*(2.5930192162362027+n*(4.778465929458438+n*(5.381683457070069+n*(3.4662540724256723+1*n)))))))))),e/r)}(u-1.125),e*(Zl*u+a*u)):u<6?(a=function(n){var e,r;return 0===n?-.0350353787183178:((n<0?-n:n)<=1?(e=n*(n*(.018557330651423107+n*(.009508047013259196+n*(.0018712349281955923+n*(.00015754461742496055+n*(460469890584318e-20+n*(26633922742578204e-28*n-2.304047769118826e-10))))))-.0022242652921344794)-.0350353787183178,r=1+n*(1.3653349817554064+n*(.7620591645536234+n*(.22009110576413124+n*(.03415891436709477+n*(.00263861676657016+n*(7646752923027944e-20+n*(0+0*n)))))))):(e=26633922742578204e-28+(n=1/n)*(n*(460469890584318e-20+n*(.00015754461742496055+n*(.0018712349281955923+n*(.009508047013259196+n*(.018557330651423107+n*(-.0350353787183178*n-.0022242652921344794))))))-2.304047769118826e-10),r=0+n*(0+n*(7646752923027944e-20+n*(.00263861676657016+n*(.03415891436709477+n*(.22009110576413124+n*(.7620591645536234+n*(1.3653349817554064+1*n)))))))),e/r)}(u-3),e*(Gl*u+a*u)):(a=function(n){var e,r;return 0===n?-.016743100507663373:((n<0?-n:n)<=1?(e=n*(n*(.001056288621524929+n*(.00020938631748758808+n*(14962478375834237e-21+n*(4.4969678992770644e-7+n*(4.625961635228786e-9+n*(9905570997331033e-32*n-2811287356288318e-29))))))-.0011295143874558028)-.016743100507663373,r=1+n*(.5914293448864175+n*(.1381518657490833+n*(.016074608709367652+n*(.0009640118070051656+n*(27533547476472603e-21+n*(2.82243172016108e-7+n*(0+0*n)))))))):(e=9905570997331033e-32+(n=1/n)*(n*(4.625961635228786e-9+n*(4.4969678992770644e-7+n*(14962478375834237e-21+n*(.00020938631748758808+n*(.001056288621524929+n*(-.016743100507663373*n-.0011295143874558028))))))-2811287356288318e-29),r=0+n*(0+n*(2.82243172016108e-7+n*(27533547476472603e-21+n*(.0009640118070051656+n*(.016074608709367652+n*(.1381518657490833+n*(.5914293448864175+1*n)))))))),e/r)}(u-6),e*(Hl*u+a*u)))}function Jl(n){var e,t,i;return Ie(n)?n:n>U?r:nhn?r:n=nd?r:ko(n)/n}function rd(n){return Ce(n)?NaN:ja(n+1)}function td(n,e){var t,i,u,o,a;return Ie(n)||!De(e)?NaN:0===n?0:n<0?(1&e?-1:1)*function(n,e){var r,t;return Ie(n)||!_e(e)?NaN:n<0?(e<0&&(n+=e,e=-e,t=!0),r=(1&e?-1:1)*td(-n,e),t&&(r=1/r),r):0===e?1:0===n?e<0?-Qo(n+1,-e):0:n<1&&n+e<0?(r=Qo(1-n,-e),1&e?-r:r):1/Qo(n,e)}(-n,e):0===e?1:n<.5?e>rn-2?(o=n*td(n-1,rn-2),a=td(n-rn+1,e-rn+1),v/Je(o)(e=id(e))?ud*n+od*e:ud*e+od*n}function fd(n,e){return n>e?n+(e>>>1):(n>>>1)+e}function sd(n){var e,r;return((r=0|n)^(e=r>>31|0))-e|0}function cd(n,e){return(n=sd(n))>(e=sd(e))?n+(e>>>1):(n>>>1)+e}function ld(n,e){return n>e?n+(e>>>2):(n>>>2)+e}function dd(n,e){return(n=sd(n))>(e=sd(e))?n+(e>>>2):(n>>>2)+e}x(ad,"factory",(function(n,e,r,t){if(t){if(1===n&&.5===e)return r?fd:cd;if(1===n&&.25===e)return r?ld:dd}return r?function(n,e){return function(r,t){return r>t?n*r+e*t:e*r+n*t}}(n,e):function(n,e){return function(r,t){return(r=id(r))>(t=id(t))?n*r+e*t:e*r+n*t}}(n,e)}));var vd={};n(vd,"abs",id),n(vd,"acosh",(function(n){return n<1?NaN:Ie(n)||Ae(n)?n:Qr(n+ke(n+1)*ke(n-1))})),n(vd,"ampbm",ad),n(vd,"asinh",(function(n){return 0===n||Ie(n)||Ae(n)?n:n>0?Qr(n+ke(n*n+1)):-Qr(-n+ke(n*n+1))})),n(vd,"atanh",(function(n){return 0===n?n:Ie(n)||Ae(n)?NaN:.5*Qr((1+n)/(1-n))})),n(vd,"hypot",(function(n,e){return ke(n*n+e*e)})),n(vd,"max",(function(n,e){return n>e?n:e})),n(vd,"min",(function(n,e){return n>=1;return t})),n(vd,"log2Uint32",(function(n){var e=0,r=n>>>0;return 4294901760&r&&(r>>>=16,e|=16),65280&r&&(r>>>=8,e|=8),240&r&&(r>>>=4,e|=4),12&r&&(r>>>=2,e|=2),2&r&&(r>>>=1,e|=1),e})),n(vd,"sqrtUint32",(function(n){var e,r,t,i;for(i=n>>>0,e=0,r=1073741824;r>i;)r>>>=2;for(;0!==r;)t=e+r>>>0,e>>>=1,n>=t&&(n-=t,e+=r),r>>>=2;return e>>>0}));var md=[0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,956722026041,1548008755920,2504730781961,4052739537881,6557470319842,0x9a661ca20bb,0xf9d297a859d,27777890035288,44945570212853,72723460248141,0x6b04f4c2fe42,0xad2934c6d08f,308061521170129,498454011879264,806515533049393,0x4a2dce62b0d91,0x780626e057bc2,0xc233f54308953,5527939700884757,8944394323791464];var pd=Qr(gn);var gd=[0,0];function hd(n){var e,r;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,(r=Xs(n))===G?n:(r=1===e?qe(r):wu(r))>U?t:e*ho(2,r))}function bd(n){var e,r;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,r=fc(n),(r=1===e?qe(r):wu(r))<=jn?0*e:r>hn?t:e*ho(10,r))}var jd=Math.floor;var Nd=[0,0];function yd(n,e,r,t){var i,u,o,a,f,s;return(i=(u=Je(n))*u)<2.5625?(f=i*i,e[t]=u*i*function(n){var e,r;return 0===n?.5235987755982989:((n<0?-n:n)<=1?(e=318016297876.5678+n*(n*(2548908805.7337637+n*(n*(708840.0452577386+n*(0*n-2991.8191940101983))-62974148.62058625))-44297951805.96978),r=607366389490.0846+n*(22441179564.534092+n*(419320245.8981112+n*(5173438.887700964+n*(45584.78108065326+n*(281.3762688899943+1*n)))))):(e=0+(n=1/n)*(n*(708840.0452577386+n*(n*(2548908805.7337637+n*(318016297876.5678*n-44297951805.96978))-62974148.62058625))-2991.8191940101983),r=1+n*(281.3762688899943+n*(45584.78108065326+n*(5173438.887700964+n*(419320245.8981112+n*(22441179564.534092+607366389490.0846*n)))))),e/r)}(f),e[t+r]=u*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=1+n*(n*(.018884331939670384+n*(n*(9504280628298596e-21+n*(0*n-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),r=1+n*(.04121420907221998+n*(.0008680295429417843+n*(12226278902417902e-21+n*(1.2500186247959882e-7+n*(9.154392157746574e-10+399982968972496e-26*n)))))):(e=0+(n=1/n)*(n*(9504280628298596e-21+n*(n*(.018884331939670384+n*(1*n-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),r=399982968972496e-26+n*(9.154392157746574e-10+n*(1.2500186247959882e-7+n*(12226278902417902e-21+n*(.0008680295429417843+n*(.04121420907221998+1*n)))))),e/r)}(f)):u>36974?(e[t+r]=.5,e[t]=.5):(s=1/((f=C*(i=u*u))*f),f=1/f,o=1-s*function(n){var e,r;return 0===n?2.999999999999634:((n<0?-n:n)<=1?(e=3.763297112699879e-20+n*(13428327623306275e-32+n*(17201074326816183e-29+n*(1.0230451416490724e-10+n*(3.055689837902576e-8+n*(46361374928786735e-22+n*(.000345017939782574+n*(.011522095507358577+n*(.1434079197807589+n*(.4215435550436775+0*n))))))))),r=1.2544323709001127e-20+n*(45200143407412973e-33+n*(5887545336215784e-29+n*(36014002958937136e-27+n*(1.1269922476399903e-8+n*(18462756734893055e-22+n*(.00015593440916415301+n*(.0064405152650885865+n*(.11688892585919138+n*(.7515863983533789+1*n)))))))))):(e=0+(n=1/n)*(.4215435550436775+n*(.1434079197807589+n*(.011522095507358577+n*(.000345017939782574+n*(46361374928786735e-22+n*(3.055689837902576e-8+n*(1.0230451416490724e-10+n*(17201074326816183e-29+n*(13428327623306275e-32+3.763297112699879e-20*n))))))))),r=1+n*(.7515863983533789+n*(.11688892585919138+n*(.0064405152650885865+n*(.00015593440916415301+n*(18462756734893055e-22+n*(1.1269922476399903e-8+n*(36014002958937136e-27+n*(5887545336215784e-29+n*(45200143407412973e-33+1.2544323709001127e-20*n)))))))))),e/r)}(s),a=f*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=18695871016278324e-38+n*(8363544356306774e-34+n*(1375554606332618e-30+n*(10826804113902088e-28+n*(4.4534441586175015e-10+n*(9.828524436884223e-8+n*(11513882611188428e-21+n*(.0006840793809153931+n*(.018764858409257526+n*(.1971028335255234+n*(.5044420736433832+0*n)))))))))),r=18695871016278324e-38+n*(8391588162831187e-34+n*(13879653125957886e-31+n*(11027321506624028e-28+n*(4.6068072814652043e-10+n*(1.0431458965757199e-7+n*(12754507566772912e-21+n*(.0008146791071843061+n*(.02536037414203388+n*(.33774898912002+n*(1.4749575992512833+1*n))))))))))):(e=0+(n=1/n)*(.5044420736433832+n*(.1971028335255234+n*(.018764858409257526+n*(.0006840793809153931+n*(11513882611188428e-21+n*(9.828524436884223e-8+n*(4.4534441586175015e-10+n*(10826804113902088e-28+n*(1375554606332618e-30+n*(8363544356306774e-34+18695871016278324e-38*n)))))))))),r=1+n*(1.4749575992512833+n*(.33774898912002+n*(.02536037414203388+n*(.0008146791071843061+n*(12754507566772912e-21+n*(1.0431458965757199e-7+n*(4.6068072814652043e-10+n*(11027321506624028e-28+n*(13879653125957886e-31+n*(8391588162831187e-34+18695871016278324e-38*n))))))))))),e/r)}(s),Pi(f=_*i,Nd,1,0),f=C*u,e[t+r]=.5+(o*Nd[0]-a*Nd[1])/f,e[t]=.5-(o*Nd[1]+a*Nd[0])/f),n<0&&(e[t+r]=-e[t+r],e[t]=-e[t]),e}function xd(n){return yd(n,[0,0],1,0)}x(xd,"assign",yd);var wd=[0,0];function Ed(n){var e,r,t,i,u,o,a;return(e=(r=Je(n))*r)<2.5625?t=r*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=1+n*(n*(.018884331939670384+n*(n*(9504280628298596e-21+n*(0*n-4.9884311457357354e-8))-.0006451914356839651))-.20552590095501388),r=1+n*(.04121420907221998+n*(.0008680295429417843+n*(12226278902417902e-21+n*(1.2500186247959882e-7+n*(9.154392157746574e-10+399982968972496e-26*n)))))):(e=0+(n=1/n)*(n*(9504280628298596e-21+n*(n*(.018884331939670384+n*(1*n-.20552590095501388))-.0006451914356839651))-4.9884311457357354e-8),r=399982968972496e-26+n*(9.154392157746574e-10+n*(1.2500186247959882e-7+n*(12226278902417902e-21+n*(.0008680295429417843+n*(.04121420907221998+1*n)))))),e/r)}(o=e*e):r>36974?t=.5:(a=1/((o=C*(e=r*r))*o),o=1/o,i=1-a*function(n){var e,r;return 0===n?2.999999999999634:((n<0?-n:n)<=1?(e=3.763297112699879e-20+n*(13428327623306275e-32+n*(17201074326816183e-29+n*(1.0230451416490724e-10+n*(3.055689837902576e-8+n*(46361374928786735e-22+n*(.000345017939782574+n*(.011522095507358577+n*(.1434079197807589+n*(.4215435550436775+0*n))))))))),r=1.2544323709001127e-20+n*(45200143407412973e-33+n*(5887545336215784e-29+n*(36014002958937136e-27+n*(1.1269922476399903e-8+n*(18462756734893055e-22+n*(.00015593440916415301+n*(.0064405152650885865+n*(.11688892585919138+n*(.7515863983533789+1*n)))))))))):(e=0+(n=1/n)*(.4215435550436775+n*(.1434079197807589+n*(.011522095507358577+n*(.000345017939782574+n*(46361374928786735e-22+n*(3.055689837902576e-8+n*(1.0230451416490724e-10+n*(17201074326816183e-29+n*(13428327623306275e-32+3.763297112699879e-20*n))))))))),r=1+n*(.7515863983533789+n*(.11688892585919138+n*(.0064405152650885865+n*(.00015593440916415301+n*(18462756734893055e-22+n*(1.1269922476399903e-8+n*(36014002958937136e-27+n*(5887545336215784e-29+n*(45200143407412973e-33+1.2544323709001127e-20*n)))))))))),e/r)}(a),u=o*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=18695871016278324e-38+n*(8363544356306774e-34+n*(1375554606332618e-30+n*(10826804113902088e-28+n*(4.4534441586175015e-10+n*(9.828524436884223e-8+n*(11513882611188428e-21+n*(.0006840793809153931+n*(.018764858409257526+n*(.1971028335255234+n*(.5044420736433832+0*n)))))))))),r=18695871016278324e-38+n*(8391588162831187e-34+n*(13879653125957886e-31+n*(11027321506624028e-28+n*(4.6068072814652043e-10+n*(1.0431458965757199e-7+n*(12754507566772912e-21+n*(.0008146791071843061+n*(.02536037414203388+n*(.33774898912002+n*(1.4749575992512833+1*n))))))))))):(e=0+(n=1/n)*(.5044420736433832+n*(.1971028335255234+n*(.018764858409257526+n*(.0006840793809153931+n*(11513882611188428e-21+n*(9.828524436884223e-8+n*(4.4534441586175015e-10+n*(10826804113902088e-28+n*(1375554606332618e-30+n*(8363544356306774e-34+18695871016278324e-38*n)))))))))),r=1+n*(1.4749575992512833+n*(.33774898912002+n*(.02536037414203388+n*(.0008146791071843061+n*(12754507566772912e-21+n*(1.0431458965757199e-7+n*(4.6068072814652043e-10+n*(11027321506624028e-28+n*(13879653125957886e-31+n*(8391588162831187e-34+18695871016278324e-38*n))))))))))),e/r)}(a),Pi(o=_*e,wd,1,0),o=C*r,t=.5+(i*wd[0]-u*wd[1])/o),n<0&&(t=-t),t}var Td=[0,0];function Od(n){var e,r,t,i,u,o,a;return(e=(r=Je(n))*r)<2.5625?t=r*e*function(n){var e,r;return 0===n?.5235987755982989:((n<0?-n:n)<=1?(e=318016297876.5678+n*(n*(2548908805.7337637+n*(n*(708840.0452577386+n*(0*n-2991.8191940101983))-62974148.62058625))-44297951805.96978),r=607366389490.0846+n*(22441179564.534092+n*(419320245.8981112+n*(5173438.887700964+n*(45584.78108065326+n*(281.3762688899943+1*n)))))):(e=0+(n=1/n)*(n*(708840.0452577386+n*(n*(2548908805.7337637+n*(318016297876.5678*n-44297951805.96978))-62974148.62058625))-2991.8191940101983),r=1+n*(281.3762688899943+n*(45584.78108065326+n*(5173438.887700964+n*(419320245.8981112+n*(22441179564.534092+607366389490.0846*n)))))),e/r)}(o=e*e):r>36974?t=.5:(a=1/((o=C*(e=r*r))*o),o=1/o,i=1-a*function(n){var e,r;return 0===n?2.999999999999634:((n<0?-n:n)<=1?(e=3.763297112699879e-20+n*(13428327623306275e-32+n*(17201074326816183e-29+n*(1.0230451416490724e-10+n*(3.055689837902576e-8+n*(46361374928786735e-22+n*(.000345017939782574+n*(.011522095507358577+n*(.1434079197807589+n*(.4215435550436775+0*n))))))))),r=1.2544323709001127e-20+n*(45200143407412973e-33+n*(5887545336215784e-29+n*(36014002958937136e-27+n*(1.1269922476399903e-8+n*(18462756734893055e-22+n*(.00015593440916415301+n*(.0064405152650885865+n*(.11688892585919138+n*(.7515863983533789+1*n)))))))))):(e=0+(n=1/n)*(.4215435550436775+n*(.1434079197807589+n*(.011522095507358577+n*(.000345017939782574+n*(46361374928786735e-22+n*(3.055689837902576e-8+n*(1.0230451416490724e-10+n*(17201074326816183e-29+n*(13428327623306275e-32+3.763297112699879e-20*n))))))))),r=1+n*(.7515863983533789+n*(.11688892585919138+n*(.0064405152650885865+n*(.00015593440916415301+n*(18462756734893055e-22+n*(1.1269922476399903e-8+n*(36014002958937136e-27+n*(5887545336215784e-29+n*(45200143407412973e-33+1.2544323709001127e-20*n)))))))))),e/r)}(a),u=o*function(n){var e,r;return 0===n?1:((n<0?-n:n)<=1?(e=18695871016278324e-38+n*(8363544356306774e-34+n*(1375554606332618e-30+n*(10826804113902088e-28+n*(4.4534441586175015e-10+n*(9.828524436884223e-8+n*(11513882611188428e-21+n*(.0006840793809153931+n*(.018764858409257526+n*(.1971028335255234+n*(.5044420736433832+0*n)))))))))),r=18695871016278324e-38+n*(8391588162831187e-34+n*(13879653125957886e-31+n*(11027321506624028e-28+n*(4.6068072814652043e-10+n*(1.0431458965757199e-7+n*(12754507566772912e-21+n*(.0008146791071843061+n*(.02536037414203388+n*(.33774898912002+n*(1.4749575992512833+1*n))))))))))):(e=0+(n=1/n)*(.5044420736433832+n*(.1971028335255234+n*(.018764858409257526+n*(.0006840793809153931+n*(11513882611188428e-21+n*(9.828524436884223e-8+n*(4.4534441586175015e-10+n*(10826804113902088e-28+n*(1375554606332618e-30+n*(8363544356306774e-34+18695871016278324e-38*n)))))))))),r=1+n*(1.4749575992512833+n*(.33774898912002+n*(.02536037414203388+n*(.0008146791071843061+n*(12754507566772912e-21+n*(1.0431458965757199e-7+n*(4.6068072814652043e-10+n*(11027321506624028e-28+n*(13879653125957886e-31+n*(8391588162831187e-34+18695871016278324e-38*n))))))))))),e/r)}(a),Pi(o=_*e,Td,1,0),o=C*r,t=.5-(i*Td[1]+u*Td[0])/o),n<0&&(t=-t),t}var kd=2148532223,qd=1071644672,Vd=[0,0],Sd=[0,0];function _d(n,e,r,t){var i,u;return 0===n||Ie(n)||Ae(n)?(e[t]=n,e[t+r]=0,e):(H(n,Vd,1,0),u=W(Vd[0])+Vd[1]+1,A.assign(Vd[0],Sd,1,0),i=Sd[0],i&=kd,n=F(i|=qd,Sd[1]),e[t]=n,e[t+r]=u,e)}function Bd(n){return _d(n,[0,0],1,0)}function Id(n){return(1+Lo(n))/2}function Md(n){return(1-Lo(n))/2}function Pd(n){return(1+na(n))/2}function Ad(n){return(1-na(n))/2}function Fd(n){return n}function Rd(n){return 1/n}function Cd(n){return d(1/d(n))}function Ld(n,e){return Qr(n)/Qr(e)}function zd(n){var e;return Ie(n)?NaN:0===n?t:0<(e=Je(n))&&e<=S?Qr(-ko(-e)):zr(-Bu(-e))}function Dd(n){return Ie(n)?NaN:n<=-37?Bu(n):n<=18?zr(Bu(n)):n<=33.3?n+Bu(-n):n}function Ud(n){return Ie(n)?n:Ge(n)?0===n?t:1===n?r:Qr(n/(1-n)):NaN}x(Bd,"assign",_d);var Zd=[2,1,3,4,7,11,18,29,47,76,123,199,322,521,843,1364,2207,3571,5778,9349,15127,24476,39603,64079,103682,167761,271443,439204,710647,1149851,1860498,3010349,4870847,7881196,12752043,20633239,33385282,54018521,87403803,141422324,228826127,370248451,599074578,969323029,1568397607,2537720636,4106118243,6643838879,10749957122,17393796001,28143753123,45537549124,73681302247,119218851371,192900153618,312119004989,505019158607,817138163596,1322157322203,2139295485799,3461452808002,5600748293801,9062201101803,0xd55fbe3dc94,23725150497407,38388099893011,62113250390418,0x5b67cb4878a5,0x93e5a9822a37,0xef4d74caa2dc,425730551631123,688846502588399,0x3f5b3b1643d02,0x66834447bacf1,0xa5de7f5dfe9f3,4721424167835364,7639424778862807];function Gd(n,e){var i,u,o,a;if(2===(i=arguments.length))return Ie(n)||Ie(e)?NaN:n===r||e===r?r:n===e&&0===n?Ze(n)?n:e:n>e?n:e;for(u=t,a=0;au||o===u&&0===o&&Ze(o))&&(u=o)}return u}function Hd(n,e){var i,u,o,a;if(2===(i=arguments.length))return Ie(n)||Ie(e)?NaN:n===t||e===t?t:n===e&&0===n?Le(n)?n:e:nf&&(f=l)}return t[u]=a,t[u+i]=f,t}function Yd(){var n,e;for(n=[],e=0;es||0===c&&c===s&&Ze(c))&&(s=c)}return i[o]=f,i[o+u]=s,i}function nv(){var n,e;for(n=[],e=0;e>20|0,(a-=0|V)<20?0==(u&(f=z>>a|0)|o)?(e[i]=n,e[i+t]=0,e):(f=F(u&=~f,0),e[i]=f,e[i+t]=n-f,e):a>51||0==(o&(f=ev>>>a-20))?(e[i]=n,e[i+t]=0,e):(f=F(u,o&=~f),e[i]=f,e[i+t]=n-f,e))}function iv(n){return tv(n,[0,0],1,0)}x(iv,"assign",tv);var uv=[0,1,-1,2,-3,5,-8,13,-21,34,-55,89,-144,233,-377,610,-987,1597,-2584,4181,-6765,10946,-17711,28657,-46368,75025,-121393,196418,-317811,514229,-832040,1346269,-2178309,3524578,-5702887,9227465,-14930352,24157817,-39088169,63245986,-102334155,165580141,-267914296,433494437,-701408733,1134903170,-1836311903,2971215073,-4807526976,7778742049,-12586269025,20365011074,-32951280099,53316291173,-86267571272,139583862445,-225851433717,365435296162,-591286729879,956722026041,-1548008755920,2504730781961,-4052739537881,6557470319842,-0x9a661ca20bb,0xf9d297a859d,-27777890035288,44945570212853,-72723460248141,0x6b04f4c2fe42,-0xad2934c6d08f,308061521170129,-498454011879264,806515533049393,-0x4a2dce62b0d91,0x780626e057bc2,-0xc233f54308953,5527939700884757,-8944394323791464];var ov=[2,-1,3,-4,7,-11,18,-29,47,-76,123,-199,322,-521,843,-1364,2207,-3571,5778,-9349,15127,-24476,39603,-64079,103682,-167761,271443,-439204,710647,-1149851,1860498,-3010349,4870847,-7881196,12752043,-20633239,33385282,-54018521,87403803,-141422324,228826127,-370248451,599074578,-969323029,1568397607,-2537720636,4106118243,-6643838879,10749957122,-17393796001,28143753123,-45537549124,73681302247,-119218851371,192900153618,-312119004989,505019158607,-817138163596,1322157322203,-2139295485799,3461452808002,-5600748293801,9062201101803,-0xd55fbe3dc94,23725150497407,-38388099893011,62113250390418,-0x5b67cb4878a5,0x93e5a9822a37,-0xef4d74caa2dc,425730551631123,-688846502588399,0x3f5b3b1643d02,-0x66834447bacf1,0xa5de7f5dfe9f3,-4721424167835364,7639424778862807];var av=2.23606797749979,fv=Qr(gn);function sv(n){var e,t;return Ie(n)||!1===_e(n)||n<1||n===r?NaN:(e=Qr((n+=1)*av)/fv,t=Qr(av*(n+e)-5+3/n)/fv,qe(n+t-2))}var cv=3.5584373474121094;function lv(n){var e,r;return e=0,n<=0?qe(n)===n?NaN:(r=ea(n),-lv(1-n)+On/(r*r)):(n<1&&(e=1/(n*n),n+=1),e+=n<=2?(2+function(n){var e,r;return 0===n?-.9999999999999991:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(2.4787778117864288+n*(2.0771415170245513+n*(.8588778991623601+n*(.20499222604410033+n*(.027210314034819473+.001576484902087695*n)))))-.4042133494563989)-5.746577466976647)-7.94125711970499)-4.712373111208652)-.9999999999999991,r=1+n*(4.712373111208634+n*(9.586191186553398+n*(11.094006726982938+n*(8.090754247493278+n*(3.877058901598914+n*(1.2275867870191448+n*(.249092040606385+n*(.02957504139006556+n*(.0015764849020049815+16126405034405948e-31*n)))))))))):(e=.001576484902087695+(n=1/n)*(.027210314034819473+n*(.20499222604410033+n*(.8588778991623601+n*(2.0771415170245513+n*(2.4787778117864288+n*(n*(n*(n*(-.9999999999999991*n-4.712373111208652)-7.94125711970499)-5.746577466976647)-.4042133494563989)))))),r=16126405034405948e-31+n*(.0015764849020049815+n*(.02957504139006556+n*(.249092040606385+n*(1.2275867870191448+n*(3.877058901598914+n*(8.090754247493278+n*(11.094006726982938+n*(9.586191186553398+n*(4.712373111208634+1*n)))))))))),e/r)}(n))/(n*n):n<=4?(cv+function(n){var e,r;return 0===n?-2.5584373473990794:((n<0?-n:n)<=1?(e=n*(n*(n*(n*(n*(n*(n*(.5154120525543513+n*(.1953783487860643+n*(.03347612826241743+n*(.0023736652059422065+0*n))))-.01914390334056497)-4.466544539286106)-14.797912276547878)-24.925643150482347)-23.9195022162768)-12.283020824054201)-2.5584373473990794,r=1+n*(4.800985584544199+n*(9.992207278431701+n*(11.889614616763133+n*(8.966132566838091+n*(4.4725413614962415+n*(1.4860098202819654+n*(.31957073576676426+n*(.040735834578768094+n*(.0023736652059327163+n*(23955488790352614e-32+-29474924474061867e-34*n))))))))))):(e=0+(n=1/n)*(.0023736652059422065+n*(.03347612826241743+n*(.1953783487860643+n*(.5154120525543513+n*(n*(n*(n*(n*(n*(-2.5584373473990794*n-12.283020824054201)-23.9195022162768)-24.925643150482347)-14.797912276547878)-4.466544539286106)-.01914390334056497))))),r=n*(23955488790352614e-32+n*(.0023736652059327163+n*(.040735834578768094+n*(.31957073576676426+n*(1.4860098202819654+n*(4.4725413614962415+n*(8.966132566838091+n*(11.889614616763133+n*(9.992207278431701+n*(4.800985584544199+1*n))))))))))-29474924474061867e-34),e/r)}(n))/(n*n):n<=8?(1+function(n){var e,r;return 0===n?16662611269702147e-33:((n<0?-n:n)<=1?(e=16662611269702147e-33+n*(.4999999999999977+n*(6.402709450190538+n*(41.38333741550006+n*(166.8033418545628+n*(453.39964786925367+n*(851.153712317697+n*(1097.7065756728507+n*(938.4312324784553+n*(487.26800160465194+119.95344524233573*n))))))))),r=1+n*(12.472085567047449+n*(78.60931297532986+n*(307.47024605031834+n*(805.1406861011516+n*(1439.1201976029215+n*(1735.6105285756048+n*(1348.3250071285634+n*(607.2259858605709+n*(119.95231785727705+.00014016591835503607*n)))))))))):(e=119.95344524233573+(n=1/n)*(487.26800160465194+n*(938.4312324784553+n*(1097.7065756728507+n*(851.153712317697+n*(453.39964786925367+n*(166.8033418545628+n*(41.38333741550006+n*(6.402709450190538+n*(.4999999999999977+16662611269702147e-33*n))))))))),r=.00014016591835503607+n*(119.95231785727705+n*(607.2259858605709+n*(1348.3250071285634+n*(1735.6105285756048+n*(1439.1201976029215+n*(805.1406861011516+n*(307.47024605031834+n*(78.60931297532986+n*(12.472085567047449+1*n)))))))))),e/r)}(1/n))/n:n<=16?(1+function(n){var e,r;return 0===n?-1.848283152741466e-20:((n<0?-n:n)<=1?(e=n*(.5+n*(3.0253386524731334+n*(13.599592751745737+n*(35.31322242830879+n*(67.16394245507142+n*(83.5767733658514+n*(71.07349121223571+n*(35.86215156147256+8.721522316399835*n))))))))-1.848283152741466e-20,r=1+n*(5.717343971612935+n*(25.29340417962044+n*(62.26197679674682+n*(113.955048909239+n*(130.80713832893898+n*(102.42314690233765+n*(44.04247728052452+n*(8.89898032477904+-.029662733687204*n))))))))):(e=8.721522316399835+(n=1/n)*(35.86215156147256+n*(71.07349121223571+n*(83.5767733658514+n*(67.16394245507142+n*(35.31322242830879+n*(13.599592751745737+n*(3.0253386524731334+n*(.5+-1.848283152741466e-20*n)))))))),r=n*(8.89898032477904+n*(44.04247728052452+n*(102.42314690233765+n*(130.80713832893898+n*(113.955048909239+n*(62.26197679674682+n*(25.29340417962044+n*(5.717343971612935+1*n))))))))-.029662733687204),e/r)}(1/n))/n:(1+function(n){var e,r;return 0===n?0:((n<0?-n:n)<=1?(e=0+n*(.5+n*(.34562566988545623+n*(9.628954993608422+n*(3.5936085382439025+n*(49.45959911843888+n*(7.775192373218939+n*(74.4536074488178+n*(2.7520934039706906+n*(23.92923597114717+0*n))))))))),r=1+n*(.3579180064375791+n*(19.138603985070986+n*(.8743490814641436+n*(98.65160974348555+n*(n*(154.31686021625373+n*(n*(60.167913667426475+n*(2.537956362006499*n-13.341484462225642))-40.2026880424379))-16.10519728333829)))))):(e=0+(n=1/n)*(23.92923597114717+n*(2.7520934039706906+n*(74.4536074488178+n*(7.775192373218939+n*(49.45959911843888+n*(3.5936085382439025+n*(9.628954993608422+n*(.34562566988545623+n*(.5+0*n))))))))),r=2.537956362006499+n*(n*(60.167913667426475+n*(n*(154.31686021625373+n*(n*(98.65160974348555+n*(.8743490814641436+n*(19.138603985070986+n*(.3579180064375791+1*n))))-16.10519728333829))-40.2026880424379))-13.341484462225642)),e/r)}(1/n))/n,e)}var dv=Df("polygamma"),vv=1e6,mv=172;function pv(n,e){var r,t,i,u,o,a;if(n+e===e)return 1===n?1/e:n*Qr(e)mv&&n*n>on?0:Ho(n-1)*ho(e,-n-1))?(u=Bu((r=ja(n)-(n+1)*Qr(e))+Qr(n+2*e)-S),r=Bu(r+=Qr(n*(n+1))-S-Qr(e))):(u=r*(n+2*e)/2,r*=n*(n+1)/2,r/=e),0===u)return u;for(a=1;!(Je((i=r*qt(2*a))/(u+=i))vv)return dv("Series did not converge, closest value was: %d.",u),NaN;return n-1&1&&(u=-u),u}var gv=Df("polygamma"),hv=1e6,bv=19;var jv=Df("polygamma"),Nv=1e6,yv=9.869604401089358,xv=31.00627668029982,wv=97.40909103400244,Ev=306.01968478528147,Tv=961.3891935753045,Ov=3020.2932277767923,kv=9488.531016070574,qv=29809.09933344621,Vv=93648.04747608303,Sv=294204.0179738906,_v=924269.1815233742,Bv=[[-1]];function Iv(n,e,i){var u,o,a,f,s,c;switch(c=Je(e)Nv?(jv("The value of `n` is so large that we're unable to compute the result in reasonable time."),NaN):((o=n-1)>=Bv.length&&function(n){var e,r,t,i,u,o,a,f,s;for(a=Bv.length-1;a=0?r:t:(u-=Qr(Je(c))*(n+1),(u+=ja(n)+Qr(Je(f)))>on?f>=0?r:t:(a=Bu(u)*Ff(f),c<0&&n+1&1&&(a*=-1),a))))}var Mv=Df("polygamma"),Pv=1e6;var Av=Df("polygamma");function Fv(n){return Ie(n)?NaN:n>0?n:0}function Rv(n){return Re(n)?NaN:n>0?n:0}var Cv=ho(2,U),Lv=Cv/2;function zv(n){var e,t,i,u,o,a;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,(a=Xs(n))===G?n:(t=qe(a),i=wu(a),t===U?n-Cv>=Lv?e*r:e*Cv:(u=ho(2,t))+((o=ho(2,i))-u)/2>n?e*u:e*o))}var Dv=1e308,Uv=1e-323;function Zv(n){var e,r,t,i,u,o;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,o=fc(n),r=qe(o),t=wu(o),r===jn?e*Uv:r===hn?e*Dv:(i=ho(10,r))+((u=ho(10,t))-i)/2>n?e*i:e*u)}function Gv(n){return 1/ke(n)}function Hv(n){return d(1/ke(d(n)))}function Wv(n,e,r,i){var u,o,a,f,s,c,l,d;if(Ie(n))return e[i]=NaN,e[i+r]=NaN,e;if(n<0?(u=-1,n=-n):u=0,0===n)return e[i]=0,e[i+r]=t,e;if(n>1e9){if(Ae(n))return-1===u?(o=-_,a=NaN):(o=_,a=0),e[i]=o,e[i+r]=a,e;o=_-na(n)/n,a=Lo(n)/n}return n>4?(l=Lo(n),f=na(n),d=1/(n*n),n<8?(s=function(n){return 0===n?5.489002234213736e-7:5.489002234213736e-7+n*(.00010893658065032867+n*(.006810201324725182+n*(.16700661183132304+n*(1.6208328770153833+n*(5.4593771716181285+4.236128628922166*n)))))}(d)/(n*function(n){return 0===n?5.489002527562557e-7:5.489002527562557e-7+n*(.00011003435715391573+n*(.007017106683227897+n*(.1787920529631499+n*(1.867922579501842+n*(7.308288225055645+n*(8.16496634205391+1*n))))))}(d)),c=d*function(n){return 0===n?7.825790407440903e-9:7.825790407440903e-9+n*(19796387414096365e-22+n*(.00016199979459893403+n*(.005388686814621773+n*(.07485277376284691+n*(.3971802963923375+n*(.6113791099522193+.08710016989731142*n))))))}(d)/function(n){return 0===n?7.825792189335346e-9:7.825792189335346e-9+n*(20265918208634397e-22+n*(.0001732210814741771+n*(.006223963454417684+n*(.09887717612776888+n*(.666296701268988+n*(1.6440220241335535+1*n))))))}(d)):(s=function(n){return 0===n?970507110881952e-28:970507110881952e-28+n*(941779576128513e-25+n*(3.200927900910049e-8+n*(48621543082645475e-22+n*(.00034955644244785906+n*(.01160642294081244+n*(.16030015822231947+n*(.7137152741001467+.4558808734704653*n)))))))}(d)/(n*function(n){return 0===n?970507110881952e-28:970507110881952e-28+n*(9437205903502767e-26+n*(3.21956939101046e-8+n*(4924350643178815e-21+n*(.00035869648188185157+n*(.012225359477197129+n*(.17868554533207454+n*(.9174636118736841+1*n)))))))}(d)),c=d*function(n){return 0===n?31404009894636335e-31:31404009894636335e-31+n*(3859459254302766e-27+n*(1.7040445278204452e-9+n*(3.471311670841167e-7+n*(34894116550227946e-21+n*(.001717182390523479+n*(.03848787676499743+n*(.33041097930563207+.6973599534432762*n)))))))}(d)/function(n){return 0===n?31404009894636335e-31:31404009894636335e-31+n*(3878301660239547e-27+n*(1.7269374896631615e-9+n*(3.5704322344374083e-7+n*(3684755044425611e-20+n*(.0019028442667439953+n*(.04679131942596258+n*(.48785225869530496+n*(1.6854889881101165+1*n))))))))}(d)),o=_-s*f-c*l,u&&(o=-o),a=s*l-c*f,e[i]=o,e[i+r]=a,e):(l=n*function(n){return 0===n?1:1+n*(n*(.0009769454381704354+n*(n*(4.625917144270128e-8+-8391678279103039e-26*n)-9757593038436328e-21))-.04134703162294066)}(d=n*n)/function(n){return 0===n?1:1+n*(.01420852393261499+n*(9964121220438756e-20+n*(4.418278428012189e-7+n*(1.279978911799433e-9+20326926619595193e-28*n))))}(d),f=d*function(n){return 0===n?-1:n*(.028915965260755523+n*(n*(3593250514199931e-21+n*(20252400238910228e-27*n-1.3524950491579076e-8))-.0004740072068734079))-1}(d)/function(n){return 0===n?4:4+n*(.051002805623644606+n*(.00031744202477503275+n*(12321035568588342e-22+n*(3.067809975818878e-9+4077460400618806e-27*n))))}(d),u&&(l=-l),o=l,a=en+Qr(n)+f,e[i]=o,e[i+r]=a,e)}function Jv(n){return Wv(n,[0,0],1,0)}function Kv(n){return Ie(n)?NaN:Ae(n)?0:0===n?1:ea(n)/(C*n)}function Qv(n,e,r,t){var i,u,o,a;return Ie(n)||Ae(n)?(e[t]=NaN,e[t+r]=NaN,e):0===(o=Je(a=n%2))||1===o?(u=qe(o),e[t]=xt(0,a),e[t+r]=u%2==1?-1:1,e):o<.25?Pi(C*a,e,r,t):o<.75?(Pi(C*(o=.5-o),e,r,t),i=e[t],e[t]=xt(e[t+r],a),e[t+r]=i,e):o<1.25?(a=xt(1,a)-a,Pi(C*a,e,r,t),e[t+r]*=-1,e):o<1.75?(Pi(C*(o-=1.5),e,r,t),i=e[t],e[t]=-xt(e[t+r],a),e[t+r]=i,e):(a-=xt(2,a),Pi(C*a,e,r,t))}function Xv(n){return Qv(n,[0,0],1,0)}x(Jv,"assign",Wv),x(Xv,"assign",Qv);var Yv=On/6;function $v(n){var e,r,t,i;return Ie(n)||n<0?NaN:1===n?0:0===n?Yv:(e=0,n>2&&(n=1/n,e|=2),n>1.5?(r=1/n-1,e|=2):n<.5?(r=-n,e|=1):r=n-1,t=-r*function(n){return 0===n?1:1+n*(3.297713409852251+n*(4.256971560081218+n*(2.7114985119655346+n*(.8796913117545303+n*(.13384763957830903+n*(.007315890452380947+46512858607399003e-21*n))))))}(r)/function(n){return 0===n?1:1+n*(3.547713409852251+n*(5.03278880143317+n*(3.6380053334513707+n*(1.4117259775183106+n*(.2829748606025681+n*(.02540437639325444+.0006909904889125533*n))))))}(r),1&e&&(t=Yv-Qr(n)*Qr(1-n)-t),2&e&&(t=-.5*(i=Qr(n))*i-t),t)}function nm(n){return Ie(n)?NaN:Je(n)>.75?ke(1+n)-1:ko(zr(n)/2)}var em=[0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,66012,121415,223317,410744,755476,1389537,2555757,4700770,8646064,15902591,29249425,53798080,98950096,181997601,334745777,615693474,1132436852,2082876103,3831006429,7046319384,12960201916,23837527729,43844049029,80641778674,148323355432,272809183135,501774317241,922906855808,1697490356184,3122171529233,5742568741225,0x99b36012952,19426970897100,35731770264967,65720971788709,0x6df08059d9f8,0xca35cf00a924,408933139743937,752145307699165,0x4ea34736b35c2,0x90a3317d5c260,4680045560037375,8607945812375585];function rm(n){var e;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,e*ho(2,qe(Xs(n))))}function tm(n){var e;return Ie(n)||Ae(n)||0===n?n:(n<0?(n=-n,e=-1):e=1,e*ho(10,qe(fc(n))))}var im=e+1,um=1e308;function om(n,e){var r,t;return Ie(n)||Ie(e)||Ae(e)?NaN:Ae(n)||0===n||eim&&e<=0?n:e>hn?0*n:e=0;)r=d(d(r*e)+n[t]),t-=1;return r}function dm(n,e,r){var t,i,u,o;if(0===(t=n.length))return NaN;if(t!==e.length)return NaN;if(0===r||1===t)return n[0]/e[0];if(Je(r)<=1)for(i=n[t-1],u=e[t-1],o=t-2;o>=0;--o)i*=r,u*=r,i+=n[o],u+=e[o];else for(r=1/r,i=n[0],u=e[0],o=1;o=0;--o)i=d(i*r),u=d(u*r),i=d(i+n[o]),u=d(u+e[o]);else for(r=d(1/r),i=n[0],u=e[0],o=1;o1?NaN:t?vs(e,r,1-n,n)[0]:vs(e,r,n,1-n)[0]})),n(cm,"betaln",js),n(cm,"binet",ws),n(cm,"binomcoef",ff),n(cm,"binomcoefln",(function n(e,r){return Ie(e)||Ie(r)?NaN:_e(e)&&_e(r)?e<0?n(-e+r-1,r):r<0?t:0===r?0:1===r?Qr(Je(e)):e=vc?(r*=.5,t*=.5,i*=.5):e<=mc&&(r*=pc,t*=pc,i*=pc),Je(t)<=Je(r)?(r=o=1/(r+t*(u=t/r)),t=-u*o):(r=(u=r/t)*(o=1/(t+r*u)),t=-o),new b(r*=i,t*=i)})),n(cm,"clamp",(function(n,e,r){return Ie(n)||Ie(e)||Ie(r)?NaN:nr?r:0===e&&Le(n)?e:0===n&&Le(r)?r:n})),n(cm,"clampf",(function(n,e,r){return Re(n)||Re(e)||Re(r)?NaN:nr?r:0===e&&ze(n)?e:0===n&&ze(r)?r:n})),n(cm,"copysign",xt),n(cm,"copysignf",(function(n,e){var r,t;return n=d(n),e=d(e),r=E(n),r&=yn,t=E(e),T(r|=t&=Nn)})),n(cm,"cos",na),n(cm,"cosd",(function(n){return xn(n)?NaN:_e((n/90-1)/2)?0:na(hc(n))})),n(cm,"cosh",bc),n(cm,"cosm1",Nc),n(cm,"cospi",ys),n(cm,"cot",Sc),n(cm,"cotd",(function(n){return xn(n)?NaN:_e((n/90-1)/2)?0:Sc(hc(n))})),n(cm,"coth",(function(n){return 1/Bc(n)})),n(cm,"covercos",Ic),n(cm,"coversin",Mc),n(cm,"cphase",Pc),n(cm,"cpolar",Fc),n(cm,"cround",(function(n){return new b(Zt(g(n)),Zt(h(n)))})),n(cm,"croundn",(function(n,e){return new b(Lc(g(n),e),Lc(h(n),e))})),n(cm,"csc",(function(n){return 1/Lo(n)})),n(cm,"cscd",(function(n){return 1/Lo(hc(n))})),n(cm,"csch",(function(n){return 1/Gc(n)})),n(cm,"csignum",(function(n){var e,r,t;return 0===(t=Ts(n))?n:(e=g(n)/t,r=h(n)/t,new b(e,r))})),n(cm,"deg2rad",hc),n(cm,"deg2radf",Wc),n(cm,"digamma",$c),n(cm,"diracDelta",nl),n(cm,"eta",cl),n(cm,"ellipe",vl),n(cm,"ellipj",jl),n(cm,"ellipk",dl),n(cm,"erf",Rl),n(cm,"erfc",_a),n(cm,"erfcinv",yf),n(cm,"erfcx",(function(n){var e;return Ie(n)?n:n>=0?n>50?n>5e7?zl/n:zl*((e=n*n)*(e+4.5)+2)/(n*(e*(e+5)+3.75)):Ll(400/(4+n)):n<-26.7?r:(e=n*n,n<-6.1?2*Bu(e):2*Bu(e)-Ll(400/(4-n)))})),n(cm,"erfinv",Wl),n(cm,"exp",Bu),n(cm,"exp2",Jl),n(cm,"exp10",Yl),n(cm,"expit",$l),n(cm,"expm1",ko),n(cm,"expm1rel",ed),n(cm,"factorial",Ho),n(cm,"factorial2",(function(n){var e,t,i,u;if(Ie(n))return NaN;if(n>=301)return r;if(n<0||!1===_e(n))return NaN;if(0===(i=0|n)|0||1===i|0)return 1;for(e=Pe(i)?2:3,t=1,u=0|i;u>=e;u-=2)t*=0|u;return t})),n(cm,"factorialln",rd),n(cm,"fallingFactorial",td),n(cm,"fast",vd),n(cm,"fibonacci",(function(n){return Ie(n)||!1===_e(n)||n<0||n>En?NaN:md[n]})),n(cm,"fibonacciIndex",(function(n){return Ie(n)||!1===_e(n)||n<=1||n===r?NaN:Zt(Qr(2.23606797749979*n+.5)/pd)})),n(cm,"flipsign",(function(n,e){var r,t;return A.assign(n,gd,1,0),r=gd[0],t=k(e),F(r^=t&=M,gd[1])})),n(cm,"flipsignf",(function(n,e){var r,t;return n=d(n),e=d(e),r=E(n),t=E(e),T(r^=t&=Nn)})),n(cm,"floor",qe),n(cm,"floor2",hd),n(cm,"floor10",bd),n(cm,"floorb",(function(n,e,r){var t,i;return Ie(n)||Ie(e)||Ie(r)||r<=0||Ae(e)||Ae(r)?NaN:Ae(n)||0===n?n:10===r?dc(n,e):0===e||1===r?qe(n):Ae(i=ho(r,-e))||Ae(t=qe(n*i)/i)?n:t})),n(cm,"floorf",jd),n(cm,"floorn",dc),n(cm,"floorsd",(function(n,e,r){var t,i,u;return Ie(n)||Ie(e)||e<1||Ae(e)||Ie(r)||r<=0||Ae(r)?NaN:Ae(n)||0===n?n:(t=10===r?fc(Je(n)):2===r?W(Je(n)):Qr(Je(n))/Qr(r),Ae(i=ho(r,Je(t=qe(t-e+1))))||Ae(u=t<0?qe(n*i)/i:qe(n/i)*i)?n:u)})),n(cm,"fresnel",xd),n(cm,"fresnelc",Ed),n(cm,"fresnels",Od),n(cm,"frexp",Bd),n(cm,"gamma",Zo),n(cm,"gammaDeltaRatio",Qo),n(cm,"gammaLanczosSum",Wo),n(cm,"gammaLanczosSumExpGScaled",La),n(cm,"gamma1pm1",Wa),n(cm,"gammainc",Ya),n(cm,"gammaincinv",ss),n(cm,"gammaln",ja),n(cm,"gammasgn",(function(n){var e;return Ie(n)?n:n>0?1:n===(e=qe(n))?0:(e/=2)===qe(e)?1:-1})),n(cm,"gcd",Me),n(cm,"hacovercos",Id),n(cm,"hacoversin",Md),n(cm,"havercos",Pd),n(cm,"haversin",Ad),n(cm,"heaviside",(function(n,e){return Ie(n)?NaN:n>0?1:0===n?"half-maximum"===e?.5:"left-continuous"===e?0:"right-continuous"===e?1:NaN:0})),n(cm,"hypot",Es),n(cm,"hypotf",Os),n(cm,"identity",Fd),n(cm,"identityf",(function(n){return n})),n(cm,"inv",Rd),n(cm,"invf",Cd),n(cm,"kernelBetainc",mf),n(cm,"kernelBetaincinv",vs),n(cm,"kernelCos",Vo),n(cm,"kernelLog1p",Us),n(cm,"kernelSin",Ao),n(cm,"kernelTan",Tc),n(cm,"kroneckerDelta",(function(n,e){return Ie(n)||Ie(e)?NaN:n===e?1:0})),n(cm,"kroneckerDeltaf",(function(n,e){return Re(n)||Re(e)?NaN:n===e?1:0})),n(cm,"labs",sd),n(cm,"lcm",(function(n,e){var r;return 0===n||0===e?0:(n<0&&(n=-n),e<0&&(e=-e),Ie(r=Me(n,e))?r:n/r*e)})),n(cm,"ldexp",It),n(cm,"ln",Qr),n(cm,"log",Ld),n(cm,"log1mexp",zd),n(cm,"log1p",zr),n(cm,"log1pexp",Dd),n(cm,"log1pmx",Fa),n(cm,"log2",Xs),n(cm,"log10",fc),n(cm,"logaddexp",(function(n,e){var r;return Ie(n)||Ie(e)?NaN:n===e?n+S:(r=n-e)>0?n+zr(Bu(-r)):e+zr(Bu(r))})),n(cm,"logit",Ud),n(cm,"lucas",(function(n){return Ie(n)||!1===_e(n)||n<0||n>Tn?NaN:Zd[n]})),n(cm,"max",Ke),n(cm,"maxabs",rf),n(cm,"maxabsn",(function(n,e){var t,i,u;if(0===(t=arguments.length))return r;if(2===t)return Gd(Je(n),Je(e));for(i=[],u=0;u0||(e=Je(n))>En?NaN:uv[e]})),n(cm,"negalucas",(function(n){var e;return Ie(n)||!1===_e(n)||n>0||(e=Je(n))>Tn?NaN:ov[e]})),n(cm,"nonfibonacci",sv),n(cm,"pdiff",(function(n,e){return Ie(n)||Ie(e)?NaN:n>e?n-e:0})),n(cm,"pdifff",(function(n,e){return Re(n)||Re(e)?NaN:n>e?d(d(n)-d(e)):0})),n(cm,"polygamma",(function n(e,i){var u,o;return De(e)?0===e?$c(i):1===e?lv(i):i<0?qe(i)===i?1&Eu(i)?r:(Av("Evaluation at negative integer: %d.",i),NaN):(u=n(e,o=1-i)+C*Iv(e,o,i),1&e?-u:u):i2/p)return 1&n?s/uPv)return Mv("Series did not converge, best value is %d.",f),NaN;return v/o.4*19+4*e?pv(e,i):1===i?(1&e?1:-1)*Ho(e)*sl(e+1):.5===i?Je(u=(1&e?1:-1)*Ho(e)*sl(e+1))>=It(v,-e-1)?1===Ff(u)?r:t:u*=It(1,e+1)-1:function(n,e){var r,t,i,u,o,a;if(u=n,(t=.4*bv+4*n-Eu(e))>hv)return gv("Exceeded maximum series evaluations when evaluated at n = %d and x = %d",n,e),NaN;if(r=-u-1,i=0,Qr((a=e)+t)*r>-on){for(o=1;o<=t;o++)i+=ho(a,r),a+=1;i*=Ho(n)}else for(o=1;o<=t;o++)i+=Bu(Qr(a)*r+ja(n+1)),a+=1;return n-1&1&&(i=-i),i+pv(n,a)}(e,i):NaN})),n(cm,"pow",ho),n(cm,"powm1",Da),n(cm,"rad2deg",xr),n(cm,"rad2degf",lt),n(cm,"ramp",Fv),n(cm,"rampf",Rv),n(cm,"rcbrt",(function(n){return 1/As(n)})),n(cm,"rcbrtf",(function(n){return d(1/As(d(n)))})),n(cm,"rempio2",bi),n(cm,"zeta",sl),n(cm,"risingFactorial",(function(n,e){var r,t;return Ie(n)||!_e(e)?NaN:n<0?(e<0&&(n+=e,e=-e,t=!0),r=(1&e?-1:1)*td(-n,e),t&&(r=1/r),r):0===e?1:0===n?e<0?-Qo(n+1,-e):0:n<1&&n+e<0?(r=Qo(1-n,-e),1&e?-r:r):1/Qo(n,e)})),n(cm,"round",Zt),n(cm,"round2",zv),n(cm,"round10",Zv),n(cm,"roundb",(function(n,e,r){var t,i;return Ie(n)||Ie(e)||Ie(r)||r<=0||Ae(e)||Ae(r)?NaN:Ae(n)||0===n?n:10===r?Lc(n,e):0===e||1===r?Zt(n):Ae(i=ho(r,-e))||Ae(t=Zt(n*i)/i)?n:t})),n(cm,"roundn",Lc),n(cm,"roundsd",(function(n,e,r){var t,i,u,o;if(Ie(n)||Ie(e)||e<1||Ae(e))return NaN;if(arguments.length>2){if(Ie(r)||r<=0||Ae(r))return NaN;t=r}else t=10;return Ae(n)||0===n?n:(i=10===t?fc(Je(n)):2===t?W(Je(n)):Qr(Je(n))/Qr(t),Ae(u=ho(t,Je(i=qe(i-e+1))))||Ae(o=i<0?Zt(n*u)/u:Zt(n/u)*u)?n:o)})),n(cm,"rsqrt",Gv),n(cm,"rsqrtf",Hv),n(cm,"secd",(function(n){return 1/na(hc(n))})),n(cm,"sici",Jv),n(cm,"signum",Ff),n(cm,"signumf",(function(n){return 0===n||Re(n)?n:n<0?-1:1})),n(cm,"sin",Lo),n(cm,"sinc",Kv),n(cm,"sincos",Ai),n(cm,"sincospi",Xv),n(cm,"sinh",Gc),n(cm,"sinpi",ea),n(cm,"spence",$v),n(cm,"sqrt",ke),n(cm,"sqrt1pm1",nm),n(cm,"sqrtf",wr),n(cm,"sqrtpi",(function(n){return ke(n*C)})),n(cm,"tan",Vc),n(cm,"tand",(function(n){return xn(n)?NaN:_e((n/90-1)/2)?1/0:_e(n/90/2)?0:Vc(hc(n))})),n(cm,"tanh",Bc),n(cm,"tribonacci",(function(n){return Ie(n)||!1===_e(n)||n<0||n>63?NaN:em[n]})),n(cm,"trigamma",lv),n(cm,"trunc",Eu),n(cm,"trunc2",rm),n(cm,"trunc10",tm),n(cm,"truncb",(function(n,e,r){var t,i;return Ie(n)||Ie(e)||Ie(r)||r<=0||Ae(e)||Ae(r)?NaN:Ae(n)||0===n?n:10===r?om(n,e):0===e||1===r?Eu(n):Ae(i=ho(r,-e))||Ae(t=Eu(n*i)/i)?n:t})),n(cm,"truncf",am),n(cm,"truncn",om),n(cm,"truncsd",(function(n,e,r){var t,i,u;return Ie(n)||Ie(e)||e<1||Ae(e)||Ie(r)||r<=0||Ae(r)?NaN:Ae(n)||0===n?n:(t=10===r?fc(Je(n)):2===r?W(Je(n)):Qr(Je(n))/Qr(r),Ae(i=ho(r,Je(t=qe(t-e+1))))||Ae(u=t<0?Eu(n*i)/i:Eu(n/i)*i)?n:u)})),n(cm,"vercos",fm),n(cm,"versin",sm),n(cm,"wrap",(function(n,e,r){var t;return Ie(n)||Ie(e)||Ie(r)||r<=e?NaN:(0===n&&(n=0),0===e&&(e=0),0===r&&(r=0),e<=n&&n500)return function(e){return lm(n,e)};if(e="return function evalpolyf(x){",0===(r=n.length))e+="return 0.0;";else if(1===r)e+="return "+n[0]+";";else{for(e+="if(x===0.0){return "+n[0]+";}",e+="return f64_to_f32("+n[0],t=r-1,i=1;i500)return function(r){return dm(n,e,r)};if(r="return function evalrational(x){",r+="var ax,s1,s2;",0===(t=n.length))r+="return NaN;";else if(t!==e.length)r+="return NaN;";else if(1===t)r+="return "+n[0]/e[0]+";";else{for(r+="if(x===0.0){return "+n[0]/e[0]+";}",r+="if(x<0.0){ax=-x;}else{ax=x;}",r+="if(ax<=1.0){",r+="s1 = "+n[0],i=t-1,u=1;u=0;u--)r+="+x*",u>0&&(r+="("),r+=n[u];for(u=0;u=0;u--)r+="+x*",u>0&&(r+="("),r+=e[u];for(u=0;u500)return function(r){return vm(n,e,r)};if(r="return function evalrationalf(x){",r+="var ax,s1,s2;",0===(t=n.length))r+="return NaN;";else if(t!==e.length)r+="return NaN;";else if(1===t)r+="return "+d(n[0]/e[0])+";";else{for(r+="if(x===0.0){return "+d(n[0]/e[0])+";}",r+="if(x<0.0){ax=-x;}else{ax=x;}",r+="if(ax<=1.0){",r+="s1 = f64_to_f32("+n[0],i=t-1,u=1;u=0;u--)r+="+f64_to_f32(x*",u>0&&(r+="("),r+=n[u];for(u=0;u<2*i;u++)r+=")";for(r+=";",r+="s2 = f64_to_f32("+e[i=t-1],u=i-1;u>=0;u--)r+="+f64_to_f32(x*",u>0&&(r+="("),r+=e[u];for(u=0;u<2*i;u++)r+=")";r+=";",r+="}",r+="return f64_to_f32(s1/s2);"}return r+="}",new fn("f64_to_f32",r+="//# sourceURL=evalrationalf.factory.js")(d)}));var mm={};function pm(n){var e,r;if(void 0===(e=mm[n])){for(e=[],r=0;r=0;r-=2)e[r]=ff((n+r-1)/2,r);mm[n]=e}return e}function gm(n,e){var r,t;return t=Ia(pm(r=Je(n)),e),n>=0?t:ho(-1,r-1)*t}function hm(n,e){var r,t,i,u;if(Ie(n)||Ie(e)||n<0||!_e(n))return NaN;if(0===n)return 1;if(1===n)return e;for(t=1,i=0,u=n;u>1;u--)r=e*t-u*i,i=t,t=r;return e*t-i}function bm(n,e){return ho(2,.5*n)*hm(n,dn*e)}x(gm,"factory",(function(n){var e,r,t,i;return e=pm(r=Je(n)),t=Ma(e),i=ho(-1,r-1),n>=0||1===i?t:function(n){return-1*t(n)}})),x(hm,"factory",(function(n){return n<0||Ie(n)||!_e(n)?Vn(NaN):0===n?Vn(1):function(e){var r,t,i,u;if(Ie(e))return NaN;for(t=1,i=0,u=n;u>1;u--)r=e*t-u*i,i=t,t=r;return e*t-i}})),x(bm,"factory",(function(n){var e;return n<0||Ie(n)||!_e(n)?Vn(NaN):0===n?Vn(1):(e=ho(2,.5*n),function(r){return e*hm(n,dn*r)})}));var jm={};function Nm(n){var e,r,t,i,u,o,a,f,s;if(void 0===(e=jm[n])){if(f=n+1,e=new Array(f),0===n)e[0]=2;else{for(s=0;s=0?t:ho(-1,r)*t}x(ym,"factory",(function(n){var e,r,t,i;return e=Nm(r=Je(n)),t=Ma(e),i=ho(-1,r),n>=0||1===i?t:function(n){return-1*t(n)}}));var xm={};n(xm,"continuedFraction",Ka),n(xm,"evalpoly",Ia),n(xm,"evalpolyf",lm),n(xm,"evalrational",dm),n(xm,"evalrationalf",vm),n(xm,"fibpoly",gm),n(xm,"hermitepoly",bm),n(xm,"lucaspoly",ym),n(xm,"normhermitepoly",hm),n(xm,"sumSeries",Aa);var wm={"max-abs":function(n,e){return(n=Je(n))<(e=Je(e))?e:n},max:function(n,e){return n(e=Je(e))?e:n},min:function(n,e){return n>e?e:n},"mean-abs":function(n,e){return(n=Je(n))+((e=Je(e))-n)/2},mean:function(n,e){return n+(e-n)/2},x:function(n){return n},y:function(n,e){return e}};function Em(n,e,i){var u,o;if(Ie(n)||Ie(e))return NaN;if(n===r||n===t||e===r||e===t)return n===e?NaN:r;if(n===e)return 0;if(Sn(i))u=i;else if(void 0===i&&(i="max-abs"),void 0===(u=wm[i]))throw new Error(_n("invalid argument. Unrecognized/unsupported scale function. Value: `%s`.",i));return 0===(o=u(n,e))?NaN:Je((n-e)/o)}var Tm=v*p;var Om={};n(Om,"absdiff",(function(n,e){return Ie(n)||Ie(e)?NaN:Ae(n)||Ae(e)?n===e?NaN:r:Je(n-e)})),n(Om,"epsdiff",(function(n,e,t){var i=Em(n,e,t||"max-abs");return Ie(i)||i===r?i:i>=Tm?v:i/p})),n(Om,"reldiff",Em);var km={};n(km,"assert",He),n(km,"ops",vr),n(km,"special",cm),n(km,"tools",xm),n(km,"utils",Om);var qm={};n(qm,"iterAdd",(function n(){var e,r,t,i,u,o;if((t=arguments.length)<2)throw new Error("insufficient arguments. Must provide two or more iterators.");for(e=[],r=[],o=0;o0?-n:n},convergents:function(n,e,r){return r&&n>0?-e:e},"*":function(n,e,r){return r&&n>0?[-n,-e]:[n,e]}};var _m=2*e;var Bm=(e+1)/2;var Im=(e+1)/2;var Mm=(e+1)/2+1;var Pm=e+1;var Am=(e+1)/2+1;var Fm=e+1;var Rm=(e+1)/2;var Cm=(e+1)/2;var Lm={};function zm(n,e,r){var t,i,u,o;if(!In(n))throw new TypeError(_n("invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.",n));if(!Sn(e))throw new TypeError(_n("invalid argument. Second argument must be a function. Value: `%s`.",e));if(t={invalid:NaN},arguments.length>2&&(u=function(n,e){return Pn(e)?(An(e,"invalid")&&(n.invalid=e.invalid),null):new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(t,r),u))throw u;return x(i={},"next",(function(){var r;if(o)return{done:!0};if((r=n.next()).done)return o=!0,r;return{value:Bn(r.value)?e(r.value):t.invalid,done:!1}})),x(i,"return",(function(n){if(o=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&Sn(n[Mn])&&x(i,Mn,(function(){return zm(n[Mn](),e,t)})),i}function Dm(n,e,r,t){var i,u,o,a,f,s,c,l;for(2,u=[0,0],i=[],o=[],l=0;l<2;l++)if(i.push(arguments[l]),In(arguments[l]))o.push(1);else{if(!Bn(arguments[l]))throw new TypeError(_n("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",l,arguments[l]));o.push(0)}if(!Sn(r))throw new TypeError(_n("invalid argument. Third argument must be a function. Value: `%s`.",r));if(f={invalid:NaN},arguments.length>3&&(c=function(n,e){return Pn(e)?(An(e,"invalid")&&(n.invalid=e.invalid),null):new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(f,t),c))throw c;if(x(a={},"next",(function(){var n,e,t;if(s)return{done:!0};for(t=0;t<2;t++)if(o[t]){if((e=i[t].next()).done)return s=!0,e;"number"==typeof e.value?u[t]=e.value:n=!0}else u[t]=i[t];if(n)return{value:f.invalid,done:!1};return{value:r(u[0],u[1]),done:!1}})),x(a,"return",(function(n){if(s=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn){for(l=0;l<2;l++)if(o[l]&&!Sn(i[l][Mn])){s=!0;break}s||x(a,Mn,(function(){var n,e;for(n=[],e=0;e<2;e++)o[e]?n.push(i[e][Mn]()):n.push(i[e]);return n.push(r,f),Dm.apply(null,n)}))}return s=!1,a}n(Lm,"iterCompositesSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:1e308},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return a=0,o=3,x(t={},"next",(function(){if(a+=1,i||a>r.iter)return{done:!0};o+=1;for(;!1===Be(o);)o+=1;return{value:o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterContinuedFractionSeq",(function n(e,r){var t,i,u,o,a,f,s,c,l,d,v,m,g,h,b;if(!Rn(e))throw new TypeError(_n("invalid argument. First argument must be a finite number. Value: `%s`.",e));if(o={iter:1e308,tol:p,returns:"terms"},arguments.length>1&&(s=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):An(e,"tol")&&(n.tol=e.tol,!Rn(e.tol)||e.tol<=0)?new TypeError(_n("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",e.tol)):An(e,"returns")&&(n.returns=e.returns,-1===Vm.indexOf(e.returns))?new TypeError(_n('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"returns",Vm.join('", "'),e.returns)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(o,r),s))throw s;return t=Sm[o.returns],f=0,u=e,e<0?(c=!0,e=-e):c=!1,b=0,x(a={},"next",(function(){var n,e,r;if(b+=1,f>0)return 1===f&&g.length>0?(e=(n=g.pop())[0],r=n[1],-1===e?{done:!0}:(n=g.first(),2===g.length&&1===n[0]&&(e+=1,r=n[1],g.clear()),{value:t(e,r,c),done:!1})):(f=2,{done:!0});if(b===o.iter)return e=(n=g.pop())[0],r=n[1],1===(n=g.first())[0]&&(e+=1,r=n[1]),g.clear(),f=2,{value:t(e,r,c),done:!1};return n=g.push(j()).pop(),{value:t(n[0],n[1],c),done:!1}})),x(a,"return",(function(n){if(f=2,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(a,Mn,(function(){return n(u,o)})),g=new Cn,l=qe(e),g.push([l,l]),l===e||0===l&&(l=qe(e=1/e),g.push([l,1/l]),l===e)?(f=1,a):(h=1/(e-l),v=d=l,m=0,g.push(j()),g.push(j()),a);function j(){var n=d;return l=qe(h),h=1/(h-l),0===(m+=l)&&(m=1e-50),0===(v=l+1/v)&&(v=1e-50),d*=i=v*(m=1/m),Je(i-1)<=o.tol&&(f=1,n===d)?[-1,d]:[l,d]}})),n(Lm,"iterCubesSeq",(function n(e){var r,t,i,u,o;if(r={iter:208063},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:o*o*o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterEvenIntegersSeq",(function n(r){var t,i,u,o,a,f,s;if(t={iter:e},arguments.length&&(o=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(t,r),o))throw o;return a=-1,f=0,s=0,x(i={},"next",(function(){if(f+=1,u||f>t.iter)return{done:!0};if(1===f)return{value:0,done:!1};a<0&&(s+=2);return{value:(a*=-1)*s,done:!1}})),x(i,"return",(function(n){if(u=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(i,Mn,(function(){return n(t)})),i})),n(Lm,"iterFactorialsSeq",(function n(e){var r,t,i,u,o;if(r={iter:1e308},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:Ho(o),done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterFibonacciSeq",(function n(e){var r,t,i,u,o,a,f,s;if(r={iter:79},arguments.length&&(u=function(n,e){if(!Pn(e))return new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e));if(An(e,"iter")){if(n.iter=e.iter,!Fn(e.iter))return new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter));if(e.iter>79)return new RangeError(_n("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",e.iter))}return null}(r,e),u))throw u;return o=0,a=1,f=0,s=0,x(t={},"next",(function(){if(s+=1,i||s>r.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=o+a,o=a,a=f);return{value:f,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterFifthPowersSeq",(function n(e){var r,t,i,u,o;if(r={iter:1552},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){var n;if(o+=1,i||o>=r.iter)return{done:!0};return{value:(n=o*o)*n*o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterFourthPowersSeq",(function n(e){var r,t,i,u,o;if(r={iter:9741},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:o*o*o*o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterIntegersSeq",(function n(e){var r,t,i,u,o,a,f;if(r={iter:_m},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,a=0,f=0,x(t={},"next",(function(){if(a+=1,i||a>r.iter)return{done:!0};if(1===a)return{value:0,done:!1};o<0&&(f+=1);return{value:(o*=-1)*f,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterLucasSeq",(function n(e){var r,t,i,u,o,a,f,s;if(r={iter:77},arguments.length&&(u=function(n,e){if(!Pn(e))return new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e));if(An(e,"iter")){if(n.iter=e.iter,!Fn(e.iter))return new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter));if(e.iter>77)return new RangeError(_n("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",e.iter))}return null}(r,e),u))throw u;return o=2,a=1,f=0,s=0,x(t={},"next",(function(){if(s+=1,i||s>r.iter)return{done:!0};1===s?f=2:2===s?f=1:(f=o+a,o=a,a=f);return{value:f,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNegaFibonacciSeq",(function n(e){var r,t,i,u,o,a,f,s;if(r={iter:79},arguments.length&&(u=function(n,e){if(!Pn(e))return new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e));if(An(e,"iter")){if(n.iter=e.iter,!Fn(e.iter))return new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter));if(e.iter>79)return new RangeError(_n("invalid option. `%s` option must be less than or equal to 79. Option: `%u`.","iter",e.iter))}return null}(r,e),u))throw u;return o=0,a=1,f=0,s=0,x(t={},"next",(function(){if(s+=1,i||s>r.iter)return{done:!0};1===s?f=0:2===s?f=1:(f=o-a,o=a,a=f);return{value:f,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNegaLucasSeq",(function n(e){var r,t,i,u,o,a,f,s;if(r={iter:77},arguments.length&&(u=function(n,e){if(!Pn(e))return new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e));if(An(e,"iter")){if(n.iter=e.iter,!Fn(e.iter))return new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter));if(e.iter>77)return new RangeError(_n("invalid option. `%s` option must be less than or equal to 77. Option: `%u`.","iter",e.iter))}return null}(r,e),u))throw u;return o=2,a=-1,f=0,s=0,x(t={},"next",(function(){if(s+=1,i||s>r.iter)return{done:!0};1===s?f=2:2===s?f=-1:(f=o-a,o=a,a=f);return{value:f,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNegativeEvenIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Bm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=0,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a-=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNegativeIntegersSeq",(function n(r){var t,i,u,o,a;if(t={iter:e},arguments.length&&(o=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(t,r),o))throw o;return a=0,x(i={},"next",(function(){if(a+=1,u||a>t.iter)return{done:!0};return{value:-a,done:!1}})),x(i,"return",(function(n){if(u=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(i,Mn,(function(){return n(t)})),i})),n(Lm,"iterNegativeOddIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Im},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=1,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a-=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonFibonacciSeq",(function n(e){var r,t,i,u,o;if(r={iter:1e308},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:sv(o),done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonNegativeEvenIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Mm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=-2,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a+=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonNegativeIntegersSeq",(function n(e){var r,t,i,u,o;if(r={iter:Pm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonPositiveEvenIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Am},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=2,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a-=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonPositiveIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Fm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=1,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a-=1,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterNonSquaresSeq",(function n(e){var r,t,i,u,o;if(r={iter:9007199349647256},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:o+qe(.5+ke(o)),done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterOddIntegersSeq",(function n(r){var t,i,u,o,a,f,s;if(t={iter:e},arguments.length&&(o=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(t,r),o))throw o;return a=-1,f=0,s=-1,x(i={},"next",(function(){if(f+=1,u||f>t.iter)return{done:!0};a<0&&(s+=2);return{value:(a*=-1)*s,done:!1}})),x(i,"return",(function(n){if(u=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(i,Mn,(function(){return n(t)})),i})),n(Lm,"iterPositiveEvenIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Rm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=0,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a+=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterPositiveIntegersSeq",(function n(r){var t,i,u,o,a;if(t={iter:e},arguments.length&&(o=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(t,r),o))throw o;return a=0,x(i={},"next",(function(){if(a+=1,u||a>t.iter)return{done:!0};return{value:a,done:!1}})),x(i,"return",(function(n){if(u=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(i,Mn,(function(){return n(t)})),i})),n(Lm,"iterPositiveOddIntegersSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:Cm},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=0,a=-1,x(t={},"next",(function(){if(o+=1,i||o>r.iter)return{done:!0};return{value:a+=2,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterPrimesSeq",(function n(e){var r,t,i,u,o,a;if(r={iter:0xdefddd2d1d18},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return a=0,o=1,x(t={},"next",(function(){if(a+=1,i||a>r.iter)return{done:!0};if(a<2)return{value:2,done:!1};o+=2;for(;!1===Se(o);)o+=2;return{value:o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterSquaredTriangularSeq",(function n(e){var r,t,i,u,o;if(r={iter:11585},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){var n;if(o+=1,i||o>=r.iter)return{done:!0};return{value:(n=o/2*(o+1))*n,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterSquaresSeq",(function n(e){var r,t,i,u,o;if(r={iter:94906265},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:o*o,done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t})),n(Lm,"iterTriangularSeq",(function n(e){var r,t,i,u,o;if(r={iter:134217727},arguments.length&&(u=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError(_n("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),u))throw u;return o=-1,x(t={},"next",(function(){if(o+=1,i||o>=r.iter)return{done:!0};return{value:o/2*(o+1),done:!1}})),x(t,"return",(function(n){if(i=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn&&x(t,Mn,(function(){return n(r)})),t}));var Um={};n(Um,"iterAbs",(function(n){return zm(n,Je)})),n(Um,"iterAbs2",(function(n){return zm(n,mr)})),n(Um,"iterAcos",(function(n){return zm(n,Nr)})),n(Um,"iterAcosh",(function(n){return zm(n,Yr)})),n(Um,"iterAcot",(function(n){return zm(n,rt)})),n(Um,"iterAcoth",(function(n){return zm(n,ot)})),n(Um,"iterAcovercos",(function(n){return zm(n,at)})),n(Um,"iterAcoversin",(function(n){return zm(n,ft)})),n(Um,"iterAhavercos",(function(n){return zm(n,ht)})),n(Um,"iterAhaversin",(function(n){return zm(n,bt)})),n(Um,"iterAsin",(function(n){return zm(n,br)})),n(Um,"iterAsinh",(function(n){return zm(n,gt)})),n(Um,"iterAtan",(function(n){return zm(n,et)})),n(Um,"iterAtan2",(function(n,e){return Dm(n,e,wt)})),n(Um,"iterAtanh",(function(n){return zm(n,ut)})),n(Um,"iterAvercos",(function(n){return zm(n,Et)})),n(Um,"iterAversin",(function(n){return zm(n,Tt)})),n(Um,"iterBesselj0",(function(n){return zm(n,Gi)})),n(Um,"iterBesselj1",(function(n){return zm(n,$i)})),n(Um,"iterBessely0",(function(n){return zm(n,du)})),n(Um,"iterBessely1",(function(n){return zm(n,xu)})),n(Um,"iterBeta",(function(n,e){return Dm(n,e,No)})),n(Um,"iterBetaln",(function(n,e){return Dm(n,e,js)})),n(Um,"iterBinet",(function(n){return zm(n,ws)})),n(Um,"iterCbrt",(function(n){return zm(n,As)})),n(Um,"iterCeil",(function(n){return zm(n,wu)})),n(Um,"iterCeil2",(function(n){return zm(n,Ys)})),n(Um,"iterCeil10",(function(n){return zm(n,sc)})),n(Um,"iterCos",(function(n){return zm(n,na)})),n(Um,"iterCosh",(function(n){return zm(n,bc)})),n(Um,"iterCosm1",(function(n){return zm(n,Nc)})),n(Um,"iterCospi",(function(n){return zm(n,ys)})),n(Um,"iterCovercos",(function(n){return zm(n,Ic)})),n(Um,"iterCoversin",(function(n){return zm(n,Mc)})),n(Um,"iterDeg2rad",(function(n){return zm(n,hc)})),n(Um,"iterDigamma",(function(n){return zm(n,$c)})),n(Um,"iterDiracDelta",(function(n){return zm(n,nl)})),n(Um,"iterEta",(function(n){return zm(n,cl)})),n(Um,"iterEllipe",(function(n){return zm(n,vl)})),n(Um,"iterEllipk",(function(n){return zm(n,dl)})),n(Um,"iterErf",(function(n){return zm(n,Rl)})),n(Um,"iterErfc",(function(n){return zm(n,_a)})),n(Um,"iterErfcinv",(function(n){return zm(n,yf)})),n(Um,"iterErfinv",(function(n){return zm(n,Wl)})),n(Um,"iterExp",(function(n){return zm(n,Bu)})),n(Um,"iterExp2",(function(n){return zm(n,Jl)})),n(Um,"iterExp10",(function(n){return zm(n,Yl)})),n(Um,"iterExpit",(function(n){return zm(n,$l)})),n(Um,"iterExpm1",(function(n){return zm(n,ko)})),n(Um,"iterExpm1rel",(function(n){return zm(n,ed)})),n(Um,"iterFactorial",(function(n){return zm(n,Ho)})),n(Um,"iterFactorialln",(function(n){return zm(n,rd)})),n(Um,"iterFloor",(function(n){return zm(n,qe)})),n(Um,"iterFloor2",(function(n){return zm(n,hd)})),n(Um,"iterFloor10",(function(n){return zm(n,bd)})),n(Um,"iterFresnelc",(function(n){return zm(n,Ed)})),n(Um,"iterFresnels",(function(n){return zm(n,Od)})),n(Um,"iterGamma",(function(n){return zm(n,Zo)})),n(Um,"iterGamma1pm1",(function(n){return zm(n,Wa)})),n(Um,"iterGammaln",(function(n){return zm(n,ja)})),n(Um,"iterHacovercos",(function(n){return zm(n,Id)})),n(Um,"iterHacoversin",(function(n){return zm(n,Md)})),n(Um,"iterHavercos",(function(n){return zm(n,Pd)})),n(Um,"iterHaversin",(function(n){return zm(n,Ad)})),n(Um,"iterInv",(function(n){return zm(n,Rd)})),n(Um,"iterLn",(function(n){return zm(n,Qr)})),n(Um,"iterLog",(function(n,e){return Dm(n,e,Ld)})),n(Um,"iterLog1mexp",(function(n){return zm(n,zd)})),n(Um,"iterLog1p",(function(n){return zm(n,zr)})),n(Um,"iterLog1pexp",(function(n){return zm(n,Dd)})),n(Um,"iterLog2",(function(n){return zm(n,Xs)})),n(Um,"iterLog10",(function(n){return zm(n,fc)})),n(Um,"iterLogit",(function(n){return zm(n,Ud)})),n(Um,"iterPow",(function(n,e){return Dm(n,e,ho)})),n(Um,"iterRad2deg",(function(n){return zm(n,xr)})),n(Um,"iterRamp",(function(n){return zm(n,Fv)})),n(Um,"iterZeta",(function(n){return zm(n,sl)})),n(Um,"iterRound",(function(n){return zm(n,Zt)})),n(Um,"iterRound2",(function(n){return zm(n,zv)})),n(Um,"iterRound10",(function(n){return zm(n,Zv)})),n(Um,"iterRsqrt",(function(n){return zm(n,Gv)})),n(Um,"iterSignum",(function(n){return zm(n,Ff)})),n(Um,"iterSin",(function(n){return zm(n,Lo)})),n(Um,"iterSinc",(function(n){return zm(n,Kv)})),n(Um,"iterSinh",(function(n){return zm(n,Gc)})),n(Um,"iterSinpi",(function(n){return zm(n,ea)})),n(Um,"iterSpence",(function(n){return zm(n,$v)})),n(Um,"iterSqrt",(function(n){return zm(n,ke)})),n(Um,"iterSqrt1pm1",(function(n){return zm(n,nm)})),n(Um,"iterTan",(function(n){return zm(n,Vc)})),n(Um,"iterTanh",(function(n){return zm(n,Bc)})),n(Um,"iterTrigamma",(function(n){return zm(n,lv)})),n(Um,"iterTrunc",(function(n){return zm(n,Eu)})),n(Um,"iterTrunc2",(function(n){return zm(n,rm)})),n(Um,"iterTrunc10",(function(n){return zm(n,tm)})),n(Um,"iterVercos",(function(n){return zm(n,fm)})),n(Um,"iterVersin",(function(n){return zm(n,sm)}));var Zm={};n(Zm,"map",zm),n(Zm,"map2",Dm),n(Zm,"map3",(function n(e,r,t,i,u){var o,a,f,s,c,l,d,v;for(3,a=[0,0,0],o=[],f=[],v=0;v<3;v++)if(o.push(arguments[v]),In(arguments[v]))f.push(1);else{if(!Bn(arguments[v]))throw new TypeError(_n("invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.",v,arguments[v]));f.push(0)}if(!Sn(i))throw new TypeError(_n("invalid argument. Third argument must be a function. Value: `%s`.",i));if(c={invalid:NaN},arguments.length>4&&(d=function(n,e){return Pn(e)?(An(e,"invalid")&&(n.invalid=e.invalid),null):new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(c,u),d))throw d;if(x(s={},"next",(function(){var n,e,r;if(l)return{done:!0};for(r=0;r<3;r++)if(f[r]){if((e=o[r].next()).done)return l=!0,e;"number"==typeof e.value?a[r]=e.value:n=!0}else a[r]=o[r];if(n)return{value:c.invalid,done:!1};return{value:i(a[0],a[1],a[2]),done:!1}})),x(s,"return",(function(n){if(l=!0,arguments.length)return{value:n,done:!0};return{done:!0}})),Mn){for(v=0;v<3;v++)if(f[v]&&!Sn(o[v][Mn])){l=!0;break}l||x(s,Mn,(function(){var e,r;for(e=[],r=0;r<3;r++)f[r]?e.push(o[r][Mn]()):e.push(o[r]);return e.push(i,c),n.apply(null,e)}))}return l=!1,s}));var Gm=1e-50;var Hm={};n(Hm,"iterContinuedFraction",(function(n){var e,r,t,i,u,o,a,f,s,c;if(!In(n))throw new TypeError(_n("invalid argument. Must provide an iterator. Value: `%s`.",n));if(r={iter:1e308,tol:p},arguments.length>1&&(t=function(n,e){return Pn(e)?An(e,"iter")&&(n.iter=e.iter,!Fn(e.iter))?new TypeError("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",e.iter):An(e,"tol")&&(n.tol=e.tol,!Rn(e.tol)||e.tol<=0)?new TypeError(_n("invalid option. `%s` option must be a positive finite number. Option: `%s`.","tol",e.tol)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,arguments[1]),t))throw t;if((u=n.next()).done)return null;if(i=u.value,!Bn(i)||Ie(i))return i;for(0===(f=i)&&(f=Gm),o=f,a=0,c=1;c1&&(t=function(n,e){return $n(e)?An(e,"output_dtype_policy")&&(n.policy=e.output_dtype_policy,!ne(Ym,n.policy))?new TypeError(_n("invalid option. `%s` option must be a recognized/supported output array data type policy. Option: `%s`.","output_dtype_policy",n.policy)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(r,e),t))throw t;return i=function(n){var e,t,i,o,a;if(Bn(n)){if(u.number)return u.number(n);throw new TypeError("invalid argument. Providing a number is not supported.")}if(zn(n)){if(u.complex)return u.complex(n);throw new TypeError("invalid argument. Providing a complex number is not supported.")}if(i={},arguments.length>1&&(o=function(n,e){return $n(e)?ee(e,"dtype")&&(n.dtype=e.dtype,!ne(np,n.dtype))?new TypeError(_n("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","dtype",n.dtype)):ee(e,"order")&&(n.order=e.order,!ne($m,n.order))?new TypeError(_n("invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.","order",n.order)):null:new TypeError(_n("invalid argument. Options argument must be an object. Value: `%s`.",e))}(i,arguments[1]),o))throw o;if(Dn(n)){if(null===u.ndarray)throw new TypeError("invalid argument. Providing an ndarray is not supported.");return t=i.dtype||Qm(n.dtype,r.policy),function(n,e,r,t){var i,u,o;return 0===(i=Qn(e.shape)).length?(u=Gn(r,1),o=Wn(r,u,[],[0],0,t)):(u=Gn(r,e.length||Kn(i)),o=Wn(r,u,i,Jn(i,t),0,t)),n(e,o),o}(u.ndarray,n,t,i.order||n.order)}if(Un(n)){if(null===u.array)throw new TypeError("invalid argument. Providing an array-like object is not supported.");return e=Zn(n)||"generic",t=i.dtype||Qm(e,r.policy),a=Gn(t,n.length),u.array(n.length,e,n,1,t,a,1),a}throw new TypeError(_n("invalid argument. Must provide an argument having a supported data type. Value: `%s`.",n))},x(i,"assign",(function(n,e){var r,t,i;if(Dn(n)){if(Dn(e)){if(r=n.shape,t=e.shape,r.length===t.length){for(i=0;i 1); // primes: 2, 3\n\t}\n\t// Check whether the number is even...\n\tif ( x > FLOAT64_MAX_SAFE_INTEGER || x%2 === 0 ) {\n\t\treturn false;\n\t}\n\t// Check for small primes...\n\tif ( x < 9 ) {\n\t\treturn true; // primes: 5, 7\n\t}\n\t// Check whether the number is evenly divisible by `3`...\n\tif ( x%3 === 0 ) {\n\t\treturn false;\n\t}\n\t// Check whether the number is evenly divisible by `5`...\n\tif ( x%5 === 0 ) {\n\t\treturn false;\n\t}\n\t// Check whether the number is evenly divisible by `7`...\n\tif ( x%7 === 0 ) {\n\t\treturn false;\n\t}\n\t// Check whether the number is a prime number in the wheel...\n\tif ( WHEEL_PRIMES[ x ] ) {\n\t\treturn true;\n\t}\n\t// Use trial division (with wheel factorization; see https://en.wikipedia.org/wiki/Wheel_factorization) to detect composite numbers, leveraging the fact that all primes greater than `210` are of the form `210k±1`...\n\tN = floor( sqrt( x ) );\n\tfor ( i = 11; i <= N; i += 210 ) {\n\t\tif (\n\t\t\tx%i === 0 || // 11\n\t\t\tx%(i+2) === 0 || // 13\n\t\t\tx%(i+6) === 0 || // 17\n\t\t\tx%(i+8) === 0 || // 19\n\t\t\tx%(i+12) === 0 || // 23\n\t\t\tx%(i+18) === 0 || // 29\n\t\t\tx%(i+20) === 0 || // 31\n\t\t\tx%(i+26) === 0 || // 37\n\t\t\tx%(i+30) === 0 || // 41\n\t\t\tx%(i+32) === 0 || // 43\n\t\t\tx%(i+36) === 0 || // 47\n\t\t\tx%(i+42) === 0 || // 53\n\t\t\tx%(i+48) === 0 || // 59\n\t\t\tx%(i+50) === 0 || // 61\n\t\t\tx%(i+56) === 0 || // 67\n\t\t\tx%(i+60) === 0 || // 71\n\t\t\tx%(i+62) === 0 || // 73\n\t\t\tx%(i+68) === 0 || // 79\n\t\t\tx%(i+72) === 0 || // 83\n\t\t\tx%(i+78) === 0 || // 89\n\t\t\tx%(i+86) === 0 || // 97\n\t\t\tx%(i+90) === 0 || // 101\n\t\t\tx%(i+92) === 0 || // 103\n\t\t\tx%(i+96) === 0 || // 107\n\t\t\tx%(i+98) === 0 || // 109\n\t\t\tx%(i+102) === 0 || // 113\n\t\t\tx%(i+110) === 0 || // 121 (relatively prime)\n\t\t\tx%(i+116) === 0 || // 127\n\t\t\tx%(i+120) === 0 || // 131\n\t\t\tx%(i+126) === 0 || // 137\n\t\t\tx%(i+128) === 0 || // 139\n\t\t\tx%(i+132) === 0 || // 143 (relatively prime)\n\t\t\tx%(i+138) === 0 || // 149\n\t\t\tx%(i+140) === 0 || // 151\n\t\t\tx%(i+146) === 0 || // 157\n\t\t\tx%(i+152) === 0 || // 163\n\t\t\tx%(i+156) === 0 || // 167\n\t\t\tx%(i+158) === 0 || // 169 (relatively prime)\n\t\t\tx%(i+162) === 0 || // 173\n\t\t\tx%(i+168) === 0 || // 179\n\t\t\tx%(i+170) === 0 || // 181\n\t\t\tx%(i+176) === 0 || // 187 (relatively prime)\n\t\t\tx%(i+180) === 0 || // 191\n\t\t\tx%(i+182) === 0 || // 193\n\t\t\tx%(i+186) === 0 || // 197\n\t\t\tx%(i+188) === 0 || // 199\n\t\t\tx%(i+198) === 0 || // 209 (relatively prime)\n\t\t\tx%(i+200) === 0 // 211\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isPrime;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is an integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an integer\n*\n* @example\n* var bool = isInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( 3.14 );\n* // returns false\n*/\nfunction isInteger( x ) {\n\treturn (floor(x) === x);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrime from './../../../../base/assert/is-prime';\nimport isInteger from './../../../../base/assert/is-integer';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a number is a composite.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether a value is a composite number\n*\n* @example\n* var bool = isComposite( 4.0 );\n* // returns true\n*\n* @example\n* var bool = isComposite( 5.0 );\n* // returns false\n*/\nfunction isComposite( x ) {\n\treturn isInteger( x ) && ( x > 1 ) && x !== PINF && isPrime( x ) === false;\n}\n\n\n// EXPORTS //\n\nexport default isComposite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is `NaN`.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 7.0 );\n* // returns false\n*/\nfunction isnan( x ) {\n\treturn ( x !== x );\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport INT32_MAX from '@stdlib/constants/int32/max';\nimport bitwise from './bitwise_binary_gcd.js';\nimport largeIntegers from './binary_gcd.js';\n\n\n// MAIN //\n\n/**\n* Computes the greatest common divisor (gcd).\n*\n* @param {integer} a - first number\n* @param {integer} b - second number\n* @returns {integer} greatest common divisor\n*\n* @example\n* var v = gcd( 48, 18 );\n* // returns 6\n*\n* @example\n* var v = gcd( 3.14, 18 );\n* // returns NaN\n*\n* @example\n* var v = gcd( NaN, 18 );\n* // returns NaN\n*/\nfunction gcd( a, b ) {\n\tif ( isnan( a ) || isnan( b ) ) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\ta === PINF ||\n\t\tb === PINF ||\n\t\ta === NINF ||\n\t\tb === NINF\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( !( isInteger( a ) && isInteger( b ) ) ) {\n\t\treturn NaN;\n\t}\n\tif ( a < 0 ) {\n\t\ta = -a;\n\t}\n\tif ( b < 0 ) {\n\t\tb = -b;\n\t}\n\tif ( a <= INT32_MAX && b <= INT32_MAX ) {\n\t\treturn bitwise( a, b );\n\t}\n\treturn largeIntegers( a, b );\n}\n\n\n// EXPORTS //\n\nexport default gcd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the greatest common divisor (gcd) using the binary GCD algorithm and bitwise operations.\n*\n* ## References\n*\n* - Stein, Josef. 1967. \"Computational problems associated with Racah algebra.\" _Journal of Computational Physics_ 1 (3): 397–405. doi:[10.1016/0021-9991(67)90047-2][@stein:1967].\n*\n* [@stein:1967]: https://doi.org/10.1016/0021-9991(67)90047-2\n*\n* @private\n* @param {integer32} a - first number\n* @param {integer32} b - second number\n* @returns {integer32} greatest common divisor\n*\n* @example\n* var v = gcd( 48, 18 );\n* // returns 6\n*/\nfunction gcd( a, b ) {\n\tvar k = 0;\n\tvar t;\n\n\t// Simple cases:\n\tif ( a === 0 ) {\n\t\treturn b;\n\t}\n\tif ( b === 0 ) {\n\t\treturn a;\n\t}\n\t// Reduce `a` and/or `b` to odd numbers and keep track of the greatest power of 2 dividing both `a` and `b`...\n\twhile ( (a & 1) === 0 && (b & 1) === 0 ) {\n\t\ta >>>= 1; // right shift\n\t\tb >>>= 1; // right shift\n\t\tk += 1;\n\t}\n\t// Reduce `a` to an odd number...\n\twhile ( (a & 1) === 0 ) {\n\t\ta >>>= 1; // right shift\n\t}\n\t// Henceforth, `a` is always odd...\n\twhile ( b ) {\n\t\t// Remove all factors of 2 in `b`, as they are not common...\n\t\twhile ( (b & 1) === 0 ) {\n\t\t\tb >>>= 1; // right shift\n\t\t}\n\t\t// `a` and `b` are both odd. Swap values such that `b` is the larger of the two values, and then set `b` to the difference (which is even)...\n\t\tif ( a > b ) {\n\t\t\tt = b;\n\t\t\tb = a;\n\t\t\ta = t;\n\t\t}\n\t\tb -= a; // b=0 iff b=a\n\t}\n\t// Restore common factors of 2...\n\treturn a << k;\n}\n\n\n// EXPORTS //\n\nexport default gcd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the greatest common divisor (gcd) using the binary GCD algorithm.\n*\n* ## References\n*\n* - Stein, Josef. 1967. \"Computational problems associated with Racah algebra.\" _Journal of Computational Physics_ 1 (3): 397–405. doi:[10.1016/0021-9991(67)90047-2][@stein:1967].\n*\n* [@stein:1967]: https://doi.org/10.1016/0021-9991(67)90047-2\n*\n* @private\n* @param {integer} a - first number\n* @param {integer} b - second number\n* @returns {integer} greatest common divisor\n*\n* @example\n* var v = gcd( 1.2676506002282294e+30, 9007199254740992 );\n* // returns 9007199254740992\n*/\nfunction gcd( a, b ) {\n\tvar k = 1;\n\tvar t;\n\n\t// Simple cases:\n\tif ( a === 0 ) {\n\t\treturn b;\n\t}\n\tif ( b === 0 ) {\n\t\treturn a;\n\t}\n\t// Reduce `a` and/or `b` to odd numbers and keep track of the greatest power of 2 dividing both `a` and `b`...\n\twhile ( a%2 === 0 && b%2 === 0 ) {\n\t\ta /= 2; // right shift\n\t\tb /= 2; // right shift\n\t\tk *= 2; // left shift\n\t}\n\t// Reduce `a` to an odd number...\n\twhile ( a%2 === 0 ) {\n\t\ta /= 2; // right shift\n\t}\n\t// Henceforth, `a` is always odd...\n\twhile ( b ) {\n\t\t// Remove all factors of 2 in `b`, as they are not common...\n\t\twhile ( b%2 === 0 ) {\n\t\t\tb /= 2; // right shift\n\t\t}\n\t\t// `a` and `b` are both odd. Swap values such that `b` is the larger of the two values, and then set `b` to the difference (which is even)...\n\t\tif ( a > b ) {\n\t\t\tt = b;\n\t\t\tb = a;\n\t\t\ta = t;\n\t\t}\n\t\tb -= a; // b=0 iff b=a\n\t}\n\t// Restore common factors of 2...\n\treturn k * a;\n}\n\n\n// EXPORTS //\n\nexport default gcd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from './../../../../base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a finite numeric value is an even number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an even number\n*\n* @example\n* var bool = isEven( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isEven( -2.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( NaN );\n* // returns false\n*/\nfunction isEven( x ) {\n\treturn isInteger( x/2.0 );\n}\n\n\n// EXPORTS //\n\nexport default isEven;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is infinite.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is infinite\n*\n* @example\n* var bool = isInfinite( Infinity );\n* // returns true\n*\n* @example\n* var bool = isInfinite( -Infinity );\n* // returns true\n*\n* @example\n* var bool = isInfinite( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinite( NaN );\n* // returns false\n*/\nfunction isInfinite( x ) {\n\treturn (x === PINF || x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isInfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float32/pinf';\nimport NINF from '@stdlib/constants/float32/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a single-precision floating-point numeric value is infinite.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is infinite\n*\n* @example\n* var bool = isInfinitef( Infinity );\n* // returns true\n*\n* @example\n* var bool = isInfinitef( -Infinity );\n* // returns true\n*\n* @example\n* var bool = isInfinitef( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isInfinitef( NaN );\n* // returns false\n*/\nfunction isInfinitef( x ) {\n\treturn (x === PINF || x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isInfinitef;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a single-precision floating-point numeric value is `NaN`.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is `NaN`\n*\n* @example\n* var bool = isnanf( NaN );\n* // returns true\n*\n* @example\n* var bool = isnanf( 7.0 );\n* // returns false\n*/\nfunction isnanf( x ) {\n\treturn ( x !== x );\n}\n\n\n// EXPORTS //\n\nexport default isnanf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is a negative integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a negative integer\n*\n* @example\n* var bool = isNegativeInteger( -1.0 );\n* // returns true\n*\n* @example\n* var bool = isNegativeInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isNegativeInteger( 10.0 );\n* // returns false\n*/\nfunction isNegativeInteger( x ) {\n\treturn (floor(x) === x && x < 0.0);\n}\n\n\n// EXPORTS //\n\nexport default isNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is negative zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is negative zero\n*\n* @example\n* var bool = isNegativeZero( -0.0 );\n* // returns true\n*\n* @example\n* var bool = isNegativeZero( 0.0 );\n* // returns false\n*/\nfunction isNegativeZero( x ) {\n\treturn (x === 0.0 && 1.0/x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isNegativeZero;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants/float32/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a single-precision floating-point numeric value is negative zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is negative zero\n*\n* @example\n* var bool = isNegativeZerof( -0.0 );\n* // returns true\n*\n* @example\n* var bool = isNegativeZerof( 0.0 );\n* // returns false\n*/\nfunction isNegativeZerof( x ) {\n\treturn (x === 0.0 && 1.0/x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isNegativeZerof;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is a nonnegative integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a nonnegative integer\n*\n* @example\n* var bool = isNonNegativeInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( -10.0 );\n* // returns false\n*/\nfunction isNonNegativeInteger( x ) {\n\treturn (floor(x) === x && x >= 0);\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEven from './../../../../base/assert/is-even';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is an odd number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an odd number\n*\n* @example\n* var bool = isOdd( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isOdd( -2.0 );\n* // returns false\n*\n* @example\n* var bool = isOdd( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isOdd( NaN );\n* // returns false\n*/\nfunction isOdd( x ) {\n\t// Check sign to prevent overflow...\n\tif ( x > 0.0 ) {\n\t\treturn isEven( x-1.0 );\n\t}\n\treturn isEven( x+1.0 );\n}\n\n\n// EXPORTS //\n\nexport default isOdd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is positive zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is positive zero\n*\n* @example\n* var bool = isPositiveZero( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveZero( -0.0 );\n* // returns false\n*/\nfunction isPositiveZero( x ) {\n\treturn (x === 0.0 && 1.0/x === PINF);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveZero;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a double-precision floating-point number is a probability.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a probability\n*\n* @example\n* var bool = isProbability( 0.5 );\n* // returns true\n*\n* @example\n* var bool = isProbability( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isProbability( NaN );\n* // returns false\n*/\nfunction isProbability( x ) {\n\treturn ( x >= 0.0 && x <= 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default isProbability;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name isEvenInt32\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/int32-is-even}\n*/\nimport isEvenInt32 from './../../../base/assert/int32-is-even';\nsetReadOnly( ns, 'isEvenInt32', isEvenInt32 );\n\n/**\n* @name isOddInt32\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/int32-is-odd}\n*/\nimport isOddInt32 from './../../../base/assert/int32-is-odd';\nsetReadOnly( ns, 'isOddInt32', isOddInt32 );\n\n/**\n* @name isComposite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-composite}\n*/\nimport isComposite from './../../../base/assert/is-composite';\nsetReadOnly( ns, 'isComposite', isComposite );\n\n/**\n* @name isCoprime\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-coprime}\n*/\nimport isCoprime from './../../../base/assert/is-coprime';\nsetReadOnly( ns, 'isCoprime', isCoprime );\n\n/**\n* @name isEven\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-even}\n*/\nimport isEven from './../../../base/assert/is-even';\nsetReadOnly( ns, 'isEven', isEven );\n\n/**\n* @name isFinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-finite}\n*/\nimport isFinite from './../../../base/assert/is-finite';\nsetReadOnly( ns, 'isFinite', isFinite );\n\n/**\n* @name isFinitef\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-finitef}\n*/\nimport isFinitef from './../../../base/assert/is-finitef';\nsetReadOnly( ns, 'isFinitef', isFinitef );\n\n/**\n* @name isInfinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-infinite}\n*/\nimport isInfinite from './../../../base/assert/is-infinite';\nsetReadOnly( ns, 'isInfinite', isInfinite );\n\n/**\n* @name isInfinitef\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-infinitef}\n*/\nimport isInfinitef from './../../../base/assert/is-infinitef';\nsetReadOnly( ns, 'isInfinitef', isInfinitef );\n\n/**\n* @name isInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-integer}\n*/\nimport isInteger from './../../../base/assert/is-integer';\nsetReadOnly( ns, 'isInteger', isInteger );\n\n/**\n* @name isnan\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nan}\n*/\nimport isnan from './../../../base/assert/is-nan';\nsetReadOnly( ns, 'isnan', isnan );\n\n/**\n* @name isnanf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nanf}\n*/\nimport isnanf from './../../../base/assert/is-nanf';\nsetReadOnly( ns, 'isnanf', isnanf );\n\n/**\n* @name isNegativeFinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-negative-finite}\n*/\nimport isNegativeFinite from './../../../base/assert/is-negative-finite';\nsetReadOnly( ns, 'isNegativeFinite', isNegativeFinite );\n\n/**\n* @name isNegativeInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-negative-integer}\n*/\nimport isNegativeInteger from './../../../base/assert/is-negative-integer';\nsetReadOnly( ns, 'isNegativeInteger', isNegativeInteger );\n\n/**\n* @name isNegativeZero\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-negative-zero}\n*/\nimport isNegativeZero from './../../../base/assert/is-negative-zero';\nsetReadOnly( ns, 'isNegativeZero', isNegativeZero );\n\n/**\n* @name isNegativeZerof\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-negative-zerof}\n*/\nimport isNegativeZerof from './../../../base/assert/is-negative-zerof';\nsetReadOnly( ns, 'isNegativeZerof', isNegativeZerof );\n\n/**\n* @name isNonNegativeFinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nonnegative-finite}\n*/\nimport isNonNegativeFinite from './../../../base/assert/is-nonnegative-finite';\nsetReadOnly( ns, 'isNonNegativeFinite', isNonNegativeFinite );\n\n/**\n* @name isNonNegativeInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nonnegative-integer}\n*/\nimport isNonNegativeInteger from './../../../base/assert/is-nonnegative-integer';\nsetReadOnly( ns, 'isNonNegativeInteger', isNonNegativeInteger );\n\n/**\n* @name isNonPositiveFinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nonpositive-finite}\n*/\nimport isNonPositiveFinite from './../../../base/assert/is-nonpositive-finite';\nsetReadOnly( ns, 'isNonPositiveFinite', isNonPositiveFinite );\n\n/**\n* @name isNonPositiveInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-nonpositive-integer}\n*/\nimport isNonPositiveInteger from './../../../base/assert/is-nonpositive-integer';\nsetReadOnly( ns, 'isNonPositiveInteger', isNonPositiveInteger );\n\n/**\n* @name isOdd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-odd}\n*/\nimport isOdd from './../../../base/assert/is-odd';\nsetReadOnly( ns, 'isOdd', isOdd );\n\n/**\n* @name isPositiveFinite\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-positive-finite}\n*/\nimport isPositiveFinite from './../../../base/assert/is-positive-finite';\nsetReadOnly( ns, 'isPositiveFinite', isPositiveFinite );\n\n/**\n* @name isPositiveInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-positive-integer}\n*/\nimport isPositiveInteger from './../../../base/assert/is-positive-integer';\nsetReadOnly( ns, 'isPositiveInteger', isPositiveInteger );\n\n/**\n* @name isPositiveZero\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-positive-zero}\n*/\nimport isPositiveZero from './../../../base/assert/is-positive-zero';\nsetReadOnly( ns, 'isPositiveZero', isPositiveZero );\n\n/**\n* @name isPositiveZerof\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-positive-zerof}\n*/\nimport isPositiveZerof from './../../../base/assert/is-positive-zerof';\nsetReadOnly( ns, 'isPositiveZerof', isPositiveZerof );\n\n/**\n* @name isPrime\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-prime}\n*/\nimport isPrime from './../../../base/assert/is-prime';\nsetReadOnly( ns, 'isPrime', isPrime );\n\n/**\n* @name isProbability\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-probability}\n*/\nimport isProbability from './../../../base/assert/is-probability';\nsetReadOnly( ns, 'isProbability', isProbability );\n\n/**\n* @name isSafeInteger\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/is-safe-integer}\n*/\nimport isSafeInteger from './../../../base/assert/is-safe-integer';\nsetReadOnly( ns, 'isSafeInteger', isSafeInteger );\n\n/**\n* @name isPow2Uint32\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/assert/uint32-is-pow2}\n*/\nimport isPow2Uint32 from './../../../base/assert/uint32-is-pow2';\nsetReadOnly( ns, 'isPow2Uint32', isPow2Uint32 );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the sum of two double-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} sum\n*\n* @example\n* var v = add( -1.0, 5.0 );\n* // returns 4.0\n*\n* @example\n* var v = add( 2.0, 5.0 );\n* // returns 7.0\n*\n* @example\n* var v = add( 0.0, 5.0 );\n* // returns 5.0\n*\n* @example\n* var v = add( -0.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = add( NaN, NaN );\n* // returns NaN\n*/\nfunction add( x, y ) {\n\treturn x + y;\n}\n\n\n// EXPORTS //\n\nexport default add;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the absolute value of a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} absolute value\n*\n* @example\n* var v = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = abs( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( NaN );\n* // returns NaN\n*/\nfunction abs( x ) {\n\treturn Math.abs( x ); // eslint-disable-line stdlib/no-builtin-math\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPositiveZero from './../../../../base/assert/is-positive-zero';\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the maximum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum value\n*\n* @example\n* var v = max( 3.14, 4.2 );\n* // returns 4.2\n*\n* @example\n* var v = max( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = max( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction max( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === PINF || y === PINF ) {\n\t\treturn PINF;\n\t}\n\tif ( x === y && x === 0.0 ) {\n\t\tif ( isPositiveZero( x ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tif ( x > y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default max;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the real part of the quotient.\n*\n* ## Notes\n*\n* - See figure 10 of [Baudin (2012)][@baudin:2012].\n*\n* [@baudin:2012]: https://arxiv.org/abs/1210.4539\n*\n* @private\n* @param {number} re1 - real component\n* @param {number} im1 - imaginary component\n* @param {number} re2 - real component\n* @param {number} im2 - imaginary component\n* @param {number} r - partial result\n* @param {number} t - partial result\n* @returns {number} real part of the quotient\n*/\nfunction internalCompreal( re1, im1, re2, im2, r, t ) {\n\tvar br;\n\tif ( r === 0.0 ) {\n\t\treturn ( re1 + (im2 * (im1/re2)) ) * t;\n\t}\n\tbr = im1 * r;\n\tif ( br === 0.0 ) {\n\t\treturn ( re1*t ) + ( (im1*t) * r );\n\t}\n\treturn ( re1+br ) * t;\n}\n\n\n// EXPORTS //\n\nexport default internalCompreal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport internalCompreal from './internal_compreal.js';\n\n\n// MAIN //\n\n/**\n* Computes the complex division.\n*\n* ## Notes\n*\n* - See figure 10 of [reference][@baudin:2012].\n*\n* [@baudin:2012]: https://arxiv.org/abs/1210.4539\n*\n* @private\n* @param {number} re1 - real component\n* @param {number} im1 - imaginary component\n* @param {number} re2 - real component\n* @param {number} im2 - imaginary component\n* @returns {Array} result\n*/\nfunction robustInternal( re1, im1, re2, im2 ) {\n\tvar out;\n\tvar r;\n\tvar t;\n\n\tout = [ 0.0, 0.0 ];\n\tr = im2 / re2;\n\tt = 1.0 / ( re2 + (im2*r) );\n\n\tout[ 0 ] = internalCompreal( re1, im1, re2, im2, r, t );\n\tout[ 1 ] = internalCompreal( im1, -re1, re2, im2, r, t );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default robustInternal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a 32-bit integer is even.\n*\n* @param {integer32} x - value to test\n* @returns {boolean} boolean indicating whether the value is even\n*\n* @example\n* var bool = isEven( 5 );\n* // returns false\n*\n* @example\n* var bool = isEven( -2 );\n* // returns true\n*\n* @example\n* var bool = isEven( 0 );\n* // returns true\n*/\nfunction isEven( x ) {\n\treturn (x & 1) === 0;\n}\n\n\n// EXPORTS //\n\nexport default isEven;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a 32-bit integer is odd.\n*\n* @param {integer32} x - value to test\n* @returns {boolean} boolean indicating whether the value is odd\n*\n* @example\n* var bool = isOdd( 5 );\n* // returns true\n*\n* @example\n* var bool = isOdd( -2 );\n* // returns false\n*\n* @example\n* var bool = isOdd( 0 );\n* // returns false\n*/\nfunction isOdd( x ) {\n\treturn (x & 1) === 1;\n}\n\n\n// EXPORTS //\n\nexport default isOdd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gcd from './../../../../base/special/gcd';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether two numbers are coprime.\n*\n* @param {number} a - first value\n* @param {number} b - second value\n* @returns {boolean} boolean indicating whether the values are coprime\n*\n* @example\n* var bool = isCoprime( 14.0, 15.0 );\n* // returns true\n*\n* @example\n* var bool = isCoprime( 14.0, 21.0 );\n* // returns false\n*/\nfunction isCoprime( a, b ) {\n\tvar v = gcd( a, b );\n\tif ( v !== v ) {\n\t\treturn false;\n\t}\n\treturn ( v === 1 );\n}\n\n\n// EXPORTS //\n\nexport default isCoprime;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is finite.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is finite\n*\n* @example\n* var bool = isfinite( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isfinite( -2.0e64 );\n* // returns true\n*\n* @example\n* var bool = isfinite( Infinity );\n* // returns false\n*\n* @example\n* var bool = isfinite( -Infinity );\n* // returns false\n*/\nfunction isfinite( x ) {\n\treturn (\n\t\t// NaN check (x !== x ):\n\t\tx === x &&\n\n\t\t// +-infinity check:\n\t\tx > NINF &&\n\t\tx < PINF\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isfinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float32/pinf';\nimport NINF from '@stdlib/constants/float32/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a single-precision floating-point numeric value is finite.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is finite\n*\n* @example\n* var bool = isfinitef( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isfinitef( -2.0e24 );\n* // returns true\n*\n* @example\n* var bool = isfinitef( Infinity );\n* // returns false\n*\n* @example\n* var bool = isfinitef( -Infinity );\n* // returns false\n*/\nfunction isfinitef( x ) {\n\treturn (\n\t\t// NaN check (x !== x ):\n\t\tx === x &&\n\n\t\t// +-infinity check:\n\t\tx > NINF &&\n\t\tx < PINF\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isfinitef;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is a negative finite number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a negative finite number\n*\n* @example\n* var bool = isNegativeFinite( -3.14 );\n* // returns true\n*\n* @example\n* var bool = isNegativeFinite( -Infinity );\n* // returns false\n*\n* @example\n* var bool = isNegativeFinite( 2.0 );\n* // returns false\n*\n* @example\n* var bool = isNegativeFinite( NaN );\n* // returns false\n*\n* @example\n* var bool = isNegativeFinite( -0.0 );\n* // returns false\n*/\nfunction isNegativeFinite( x ) {\n\treturn ( x < 0.0 && x > NINF );\n}\n\n\n// EXPORTS //\n\nexport default isNegativeFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is a nonnegative finite number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a nonnegative finite number\n*\n* @example\n* var bool = isNonNegativeFinite( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeFinite( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeFinite( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeFinite( Infinity );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeFinite( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeFinite( NaN );\n* // returns false\n*/\nfunction isNonNegativeFinite( x ) {\n\treturn ( x >= 0.0 && x < PINF );\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is a nonpositive finite number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a nonpositive finite number\n*\n* @example\n* var bool = isNonPositiveFinite( -3.14 );\n* // returns true\n*\n* @example\n* var bool = isNonPositiveFinite( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isNonPositiveFinite( -Infinity );\n* // returns false\n*\n* @example\n* var bool = isNonPositiveFinite( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonPositiveFinite( NaN );\n* // returns false\n*/\nfunction isNonPositiveFinite( x ) {\n\treturn ( x <= 0.0 && x > NINF );\n}\n\n\n// EXPORTS //\n\nexport default isNonPositiveFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is a nonpositive integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a nonpositive integer\n*\n* @example\n* var bool = isNonPositiveInteger( -1.0 );\n* // returns true\n*\n* @example\n* var bool = isNonPositiveInteger( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isNonPositiveInteger( 10.0 );\n* // returns false\n*/\nfunction isNonPositiveInteger( x ) {\n\treturn (floor(x) === x && x <= 0);\n}\n\n\n// EXPORTS //\n\nexport default isNonPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is a positive finite number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a positive finite number\n*\n* @example\n* var bool = isPositiveFinite( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveFinite( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isPositiveFinite( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveFinite( Infinity );\n* // returns false\n*\n* @example\n* var bool = isPositiveFinite( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isPositiveFinite( NaN );\n* // returns false\n*/\nfunction isPositiveFinite( x ) {\n\treturn ( x > 0.0 && x < PINF );\n}\n\n\n// EXPORTS //\n\nexport default isPositiveFinite;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is a positive integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a positive integer\n*\n* @example\n* var bool = isPositiveInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( -10.0 );\n* // returns false\n*/\nfunction isPositiveInteger( x ) {\n\treturn (floor(x) === x && x > 0);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float32/pinf';\n\n\n// MAIN //\n\n/**\n* Tests if a single-precision floating-point numeric value is positive zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is positive zero\n*\n* @example\n* var bool = isPositiveZerof( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveZerof( -0.0 );\n* // returns false\n*/\nfunction isPositiveZerof( x ) {\n\treturn (x === 0.0 && 1.0/x === PINF);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveZerof;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport MIN_SAFE_INTEGER from '@stdlib/constants/float64/min-safe-integer';\nimport isInteger from './../../../../base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is a safe integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is a safe integer\n*\n* @example\n* var bool = isSafeInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isSafeInteger( 2.0e200 );\n* // returns false\n*\n* @example\n* var bool = isSafeInteger( 3.14 );\n* // returns false\n*/\nfunction isSafeInteger( x ) {\n\treturn (\n\t\tx >= MIN_SAFE_INTEGER &&\n\t\tx <= MAX_SAFE_INTEGER &&\n\t\tisInteger( x )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isSafeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests whether an unsigned integer is a power of 2.\n*\n* @param {uinteger32} x - value to test\n* @returns {boolean} boolean indicating whether a value is a power of 2\n*\n* @example\n* var bool = isPow2Uint32( 2 );\n* // returns true\n*\n* @example\n* var bool = isPow2Uint32( 5 );\n* // returns false\n*/\nfunction isPow2Uint32( x ) {\n\tx >>>= 0;\n\treturn ( !!x && !(x & (x-1)));\n}\n\n\n// EXPORTS //\n\nexport default isPow2Uint32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport max from './../../../../base/special/max';\nimport FLOAT64_BIGGEST from '@stdlib/constants/float64/max';\nimport FLOAT64_SMALLEST from '@stdlib/constants/float64/smallest-normal';\nimport EPS from '@stdlib/constants/float64/eps';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport robustInternal from './robust_internal.js';\n\n\n// VARIABLES //\n\nvar LARGE_THRESHOLD = FLOAT64_BIGGEST * 0.5;\nvar SMALL_THRESHOLD = FLOAT64_SMALLEST * ( 2.0 / EPS );\nvar RECIP_EPS_SQR = 2.0 / ( EPS * EPS );\n\n\n// MAIN //\n\n/**\n* Divides two double-precision complex floating-point numbers.\n*\n* ## References\n*\n* - Baudin, Michael, and Robert L. Smith. 2012. \"A Robust Complex Division in Scilab.\" _arXiv_ abs/1210.4539 \\[cs.MS\\] (October): 1–25. .\n*\n* @param {Complex128} z1 - complex number\n* @param {Complex128} z2 - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z1 = new Complex128( -13.0, -1.0 );\n* // returns \n*\n* var z2 = new Complex128( -2.0, 1.0 );\n* // returns \n*\n* var out = cdiv( z1, z2 );\n* // returns \n*\n* var re = real( out );\n* // returns 5.0\n*\n* var im = imag( out );\n* // returns 3.0\n*/\nfunction cdiv( z1, z2 ) {\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar out;\n\tvar ab;\n\tvar cd;\n\tvar s;\n\n\tre1 = real( z1 );\n\tre2 = real( z2 );\n\tim1 = imag( z1 );\n\tim2 = imag( z2 );\n\n\tab = max( abs(re1), abs(im1) );\n\tcd = max( abs(re2), abs(im2) );\n\ts = 1.0;\n\n\tif ( ab >= LARGE_THRESHOLD ) {\n\t\tre1 *= 0.5;\n\t\tim1 *= 0.5;\n\t\ts *= 2.0;\n\t} else if ( ab <= SMALL_THRESHOLD ) {\n\t\tre1 *= RECIP_EPS_SQR;\n\t\tim1 *= RECIP_EPS_SQR;\n\t\ts /= RECIP_EPS_SQR;\n\t}\n\tif ( cd >= LARGE_THRESHOLD ) {\n\t\tre2 *= 0.5;\n\t\tim2 *= 0.5;\n\t\ts *= 0.5;\n\t} else if ( cd <= SMALL_THRESHOLD ) {\n\t\tre2 *= RECIP_EPS_SQR;\n\t\tim2 *= RECIP_EPS_SQR;\n\t\ts *= RECIP_EPS_SQR;\n\t}\n\tif ( abs( im2 ) <= abs( re2 ) ) {\n\t\tout = robustInternal( re1, im1, re2, im2 );\n\t} else {\n\t\tout = robustInternal( im1, re1, im2, re2 );\n\t\tout[ 1 ] *= -1.0;\n\t}\n\tout[ 0 ] *= s;\n\tout[ 1 ] *= s;\n\treturn new Complex128( out[ 0 ], out[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default cdiv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Subtracts two double-precision complex floating-point numbers.\n*\n* @param {Complex128} z1 - complex number\n* @param {Complex128} z2 - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z1 = new Complex128( 5.0, 3.0 );\n* // returns \n*\n* var z2 = new Complex128( -2.0, 1.0 );\n* // returns \n*\n* var out = csub( z1, z2 );\n* // returns \n*\n* var re = real( out );\n* // returns 7.0\n*\n* var im = imag( out );\n* // returns 2.0\n*/\nfunction csub( z1, z2 ) {\n\tvar re = real( z1 ) - real( z2 );\n\tvar im = imag( z1 ) - imag( z2 );\n\treturn new Complex128( re, im );\n}\n\n\n// EXPORTS //\n\nexport default csub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Subtracts two single-precision complex floating-point numbers.\n*\n* @param {Complex64} z1 - complex number\n* @param {Complex64} z2 - complex number\n* @returns {Complex64} result\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z1 = new Complex64( 5.0, 3.0 );\n* // returns \n*\n* var z2 = new Complex64( -2.0, 1.0 );\n* // returns \n*\n* var out = csubf( z1, z2 );\n* // returns \n*\n* var re = realf( out );\n* // returns 7.0\n*\n* var im = imagf( out );\n* // returns 2.0\n*/\nfunction csubf( z1, z2 ) {\n\tvar re = float64ToFloat32( realf( z1 ) - realf( z2 ) );\n\tvar im = float64ToFloat32( imagf( z1 ) - imagf( z2 ) );\n\treturn new Complex64( re, im );\n}\n\n\n// EXPORTS //\n\nexport default csubf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar imul = ( typeof Math.imul === 'function' ) ? Math.imul : null; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default imul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform C-like multiplication of two signed 32-bit integers.\n*\n* @module @stdlib/math/base/ops/imul\n*\n* @example\n* import imul from '@stdlib/math/base/ops/imul';\n*\n* var v = imul( -10|0, 4|0 );\n* // returns -40\n*/\n\n// MODULES //\n\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( typeof builtin === 'function' ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// Define a mask for the least significant 16 bits (low word): 65535 => 0x0000ffff => 00000000000000001111111111111111\nvar LOW_WORD_MASK = 0x0000ffff>>>0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Performs C-like multiplication of two signed 32-bit integers.\n*\n* ## Method\n*\n* - To emulate C-like multiplication without the aid of 64-bit integers, we recognize that a 32-bit integer can be split into two 16-bit words\n*\n* ```tex\n* a = w_h*2^{16} + w_l\n* ```\n*\n* where \\\\( w_h \\\\) is the most significant 16 bits and \\\\( w_l \\\\) is the least significant 16 bits. For example, consider the maximum signed 32-bit integer \\\\( 2^{31}-1 \\\\)\n*\n* ```binarystring\n* 01111111111111111111111111111111\n* ```\n*\n* The 16-bit high word is then\n*\n* ```binarystring\n* 0111111111111111\n* ```\n*\n* and the 16-bit low word\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* If we cast the high word to 32-bit precision and multiply by \\\\( 2^{16} \\\\) (equivalent to a 16-bit left shift), then the bit sequence is\n*\n* ```binarystring\n* 01111111111111110000000000000000\n* ```\n*\n* Similarly, upon casting the low word to 32-bit precision, the bit sequence is\n*\n* ```binarystring\n* 00000000000000001111111111111111\n* ```\n*\n* From the rules of binary addition, we recognize that adding the two 32-bit values for the high and low words will return our original value \\\\( 2^{31}-1 \\\\).\n*\n* - Accordingly, the multiplication of two 32-bit integers can be expressed\n*\n* ```tex\n* \\begin{align*}\n* a \\cdot b &= ( a_h \\cdot 2^{16} + a_l) \\cdot ( b_h \\cdot 2^{16} + b_l) \\\\\n* &= a_l \\cdot b_l + a_h \\cdot b_l \\cdot 2^{16} + a_l \\cdot b_h \\cdot 2^{16} + (a_h \\cdot b_h) \\cdot 2^{32} \\\\\n* &= a_l \\cdot b_l + (a_h \\cdot b_l + a_l \\cdot b_h) \\cdot 2^{16} + (a_h \\cdot b_h) \\cdot 2^{32}\n* \\end{align*}\n* ```\n*\n* - We note that multiplying (dividing) an integer by \\\\( 2^n \\\\) is equivalent to performing a left (right) shift of \\\\( n \\\\) bits.\n*\n* - Further, as we want to return an integer of the same precision, for a 32-bit integer, the return value will be modulo \\\\( 2^{32} \\\\). Stated another way, we only care about the low word of a 64-bit result.\n*\n* - Accordingly, the last term, being evenly divisible by \\\\( 2^{32} \\\\), drops from the equation leaving the remaining two terms as the remainder.\n*\n* ```tex\n* a \\cdot b = a_l \\cdot b_l + (a_h \\cdot b_l + a_l \\cdot b_h) << 16\n* ```\n*\n* - Lastly, the second term in the above equation contributes to the middle bits and may cause the product to \"overflow\". However, we can disregard (`>>>0`) overflow bits due to modulo arithmetic, as discussed earlier with regard to the term involving the partial product of high words.\n*\n* @param {integer32} a - integer\n* @param {integer32} b - integer\n* @returns {integer32} product\n*\n* @example\n* var v = imul( -10|0, 4|0 );\n* // returns -40\n*/\nfunction imul( a, b ) {\n\tvar lbits;\n\tvar mbits;\n\tvar ha;\n\tvar hb;\n\tvar la;\n\tvar lb;\n\n\ta |= 0; // asm type annotation\n\tb |= 0; // asm type annotation\n\n\t// Isolate the most significant 16-bits:\n\tha = ( a>>>16 )>>>0; // asm type annotation\n\thb = ( b>>>16 )>>>0; // asm type annotation\n\n\t// Isolate the least significant 16-bits:\n\tla = ( a&LOW_WORD_MASK )>>>0; // asm type annotation\n\tlb = ( b&LOW_WORD_MASK )>>>0; // asm type annotation\n\n\t// Shift by zero (`>>>0`) sets the sign on the high part of the low word (i.e., \"mid-bits\"):\n\tlbits = ( la*lb )>>>0; // asm type annotation; no integer overflow possible\n\tmbits = ( ((ha*lb) + (la*hb))<<16 )>>>0; // asm type annotation; possible integer overflow\n\n\t// The final `|0` converts from an \"unsigned integer\" (possible integer overflow during sum) to a signed integer:\n\treturn ( lbits + mbits )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default imul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// VARIABLES //\n\n// Define a mask for the least significant 16 bits (low word): 65535 => 0x0000ffff => 00000000000000001111111111111111\nvar LOW_WORD_MASK = 0x0000ffff>>>0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Performs multiplication of two signed 32-bit integers and returns an array of two signed 32-bit integers which represents the signed 64-bit integer product.\n*\n* @param {uinteger32} a - integer\n* @param {uinteger32} b - integer\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var v = imuldw( 0xAAAAAAAA, 0x55555555, [ 0, 0 ], 1, 0 );\n* // returns [ -477218589, 1908874354 ]\n*/\nfunction imuldw( a, b, out, stride, offset ) {\n\tvar w1;\n\tvar w2;\n\tvar w3;\n\tvar ha;\n\tvar hb;\n\tvar la;\n\tvar lb;\n\tvar t;\n\tvar k;\n\n\tif ( isnan( a ) || isnan( b ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\ta |= 0; // asm type annotation\n\tb |= 0; // asm type annotation\n\n\tha = ( a >> 16 ) | 0;\n\tla = ( a & LOW_WORD_MASK ) >>> 0;\n\n\thb = ( b >> 16 ) | 0;\n\tlb = ( b & LOW_WORD_MASK ) >>> 0;\n\n\tt = ( la*lb ) >>> 0;\n\tw3 = ( t & LOW_WORD_MASK ) >>> 0;\n\tk = ( t >>> 16 ) >>> 0;\n\n\tt = ( ( ha*lb ) + k ) >>> 0;\n\tw2 = ( t & LOW_WORD_MASK ) >>> 0;\n\tw1 = ( t >> 16 ) >>> 0;\n\n\tt = ( ( la*hb ) + w2 ) >>> 0;\n\tk = ( t >> 16 ) >>> 0;\n\n\tout[ offset ] = ( ( ha*hb ) + w1 + k ) | 0; // compute the higher 32 bits and cast to a signed 32-bit integer\n\tout[ offset + stride ] = ( ( t << 16 ) + w3 ) | 0; // compute the lower 32 bits and cast to a signed 32-bit integer\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default imuldw;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Performs multiplication of two signed 32-bit integers and returns an array of two signed 32-bit integers which represents the signed 64-bit integer product.\n*\n* @param {uinteger32} a - integer\n* @param {uinteger32} b - integer\n* @returns {Array} output array\n*\n* @example\n* var v = imuldw( 0xAAAAAAAA, 0x55555555 );\n* // returns [ -477218589, 1908874354 ]\n*/\nfunction imuldw( a, b ) {\n\treturn fcn( a, b, [ 0, 0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default imuldw;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Multiplies two double-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} result\n*\n* @example\n* var v = mul( -1.0, 5.0 );\n* // returns -5.0\n*\n* @example\n* var v = mul( 2.0, 5.0 );\n* // returns 10.0\n*\n* @example\n* var v = mul( 0.0, 5.0 );\n* // returns 0.0\n*\n* @example\n* var v = mul( -0.0, 0.0 );\n* // returns -0.0\n*\n* @example\n* var v = mul( NaN, NaN );\n* // returns NaN\n*/\nfunction mul( x, y ) {\n\treturn x * y;\n}\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Subtracts two double-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} result\n*\n* @example\n* var v = sub( -1.0, 5.0 );\n* // returns -6.0\n*\n* @example\n* var v = sub( 2.0, 5.0 );\n* // returns -3.0\n*\n* @example\n* var v = sub( 0.0, 5.0 );\n* // returns -5.0\n*\n* @example\n* var v = sub( -0.0, 0.0 );\n* // returns -0.0\n*\n* @example\n* var v = sub( NaN, NaN );\n* // returns NaN\n*/\nfunction sub( x, y ) {\n\treturn x - y;\n}\n\n\n// EXPORTS //\n\nexport default sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform multiplication of two signed 32-bit integers and return an array of two signed 32-bit integers which represents the signed 64-bit integer product.\n*\n* @module @stdlib/math/base/ops/imuldw\n*\n* @example\n* import imuldw from '@stdlib/math/base/ops/imuldw';\n*\n* var v = imuldw( 0xAAAAAAAA, 0x55555555 );\n* // returns [ -477218589, 1908874354 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// VARIABLES //\n\n// Define a mask for the least significant 16 bits (low word): 65535 => 0x0000ffff => 00000000000000001111111111111111\nvar LOW_WORD_MASK = 0x0000ffff>>>0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Performs multiplication of two unsigned 32-bit integers and returns an array of two unsigned 32-bit integers which represents the unsigned 64-bit integer product.\n*\n* @param {uinteger32} a - integer\n* @param {uinteger32} b - integer\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = [ 0, 0 ];\n* var v = umuldw( 0xAAAAAAAA, 0x55555555, out, 1, 0 );\n* // returns [ 954437176, 1908874354 ]\n*/\nfunction umuldw(a, b, out, stride, offset ) {\n\tvar w1;\n\tvar w2;\n\tvar w3;\n\tvar ha;\n\tvar hb;\n\tvar la;\n\tvar lb;\n\tvar t;\n\tvar k;\n\n\tif ( isnan( a ) || isnan( b ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\ta >>>= 0; // asm type annotation\n\tb >>>= 0; // asm type annotation\n\n\tha = ( a >>> 16 ) >>> 0;\n\tla = ( a & LOW_WORD_MASK ) >>> 0;\n\n\thb = ( b >>> 16 ) >>> 0;\n\tlb = ( b & LOW_WORD_MASK ) >>> 0;\n\n\tt = ( la*lb ) >>> 0;\n\tw3 = ( t & LOW_WORD_MASK ) >>> 0;\n\tk = ( t >>> 16 ) >>> 0;\n\n\tt = ( ( ha*lb ) + k ) >>> 0;\n\tw2 = ( t & LOW_WORD_MASK ) >>> 0;\n\tw1 = ( t >>> 16 ) >>> 0;\n\n\tt = ( ( la*hb ) + w2 ) >>> 0;\n\tk = ( t >>> 16 ) >>> 0;\n\n\tout[ offset ] = ( ( ha*hb ) + w1 + k ) >>> 0; // compute the higher 32 bits and cast to an unsigned 32-bit integer\n\tout[ offset + stride ] = ( ( t << 16 ) + w3) >>> 0; // compute the lower 32 bits and cast to an unsigned 32-bit integer\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default umuldw;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Performs multiplication of two unsigned 32-bit integers and returns an array of two unsigned 32-bit integers which represents the unsigned 64-bit integer product.\n*\n* @param {uinteger32} a - integer\n* @param {uinteger32} b - integer\n* @returns {Array} output array\n*\n* @example\n* var v = umuldw( 0xAAAAAAAA, 0x55555555 );\n* // returns [ 954437176, 1908874354 ]\n*/\nfunction umuldw( a, b ) {\n\treturn fcn( a, b, [ 0, 0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default umuldw;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform multiplication of two unsigned 32-bit integers and return an array of two unsigned 32-bit integers which represents the unsigned 64-bit integer product.\n*\n* @module @stdlib/math/base/ops/umuldw\n*\n* @example\n* import umuldw from '@stdlib/math/base/ops/umuldw';\n*\n* var v = umuldw( 0xAAAAAAAA, 0x55555555 );\n* // returns [ 954437176, 1908874354 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name caddf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/complex/float32/base/add}\n*/\nimport caddf from '@stdlib/complex/float32/base/add';\nsetReadOnly( ns, 'caddf', caddf );\n\n/**\n* @name cmulf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/complex/float32/base/mul}\n*/\nimport cmulf from '@stdlib/complex/float32/base/mul';\nsetReadOnly( ns, 'cmulf', cmulf );\n\n/**\n* @name cadd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/complex/float64/base/add}\n*/\nimport cadd from '@stdlib/complex/float64/base/add';\nsetReadOnly( ns, 'cadd', cadd );\n\n/**\n* @name cmul\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/complex/float64/base/mul}\n*/\nimport cmul from '@stdlib/complex/float64/base/mul';\nsetReadOnly( ns, 'cmul', cmul );\n\n/**\n* @name add\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/add}\n*/\nimport add from './../../../base/ops/add';\nsetReadOnly( ns, 'add', add );\n\n/**\n* @name add3\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/add3}\n*/\nimport add3 from './../../../base/ops/add3';\nsetReadOnly( ns, 'add3', add3 );\n\n/**\n* @name add4\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/add4}\n*/\nimport add4 from './../../../base/ops/add4';\nsetReadOnly( ns, 'add4', add4 );\n\n/**\n* @name add5\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/add5}\n*/\nimport add5 from './../../../base/ops/add5';\nsetReadOnly( ns, 'add5', add5 );\n\n/**\n* @name addf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/addf}\n*/\nimport addf from './../../../base/ops/addf';\nsetReadOnly( ns, 'addf', addf );\n\n/**\n* @name cdiv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/cdiv}\n*/\nimport cdiv from './../../../base/ops/cdiv';\nsetReadOnly( ns, 'cdiv', cdiv );\n\n/**\n* @name cneg\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/cneg}\n*/\nimport cneg from './../../../base/ops/cneg';\nsetReadOnly( ns, 'cneg', cneg );\n\n/**\n* @name cnegf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/cnegf}\n*/\nimport cnegf from './../../../base/ops/cnegf';\nsetReadOnly( ns, 'cnegf', cnegf );\n\n/**\n* @name csub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/csub}\n*/\nimport csub from './../../../base/ops/csub';\nsetReadOnly( ns, 'csub', csub );\n\n/**\n* @name csubf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/csubf}\n*/\nimport csubf from './../../../base/ops/csubf';\nsetReadOnly( ns, 'csubf', csubf );\n\n/**\n* @name div\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/div}\n*/\nimport div from './../../../base/ops/div';\nsetReadOnly( ns, 'div', div );\n\n/**\n* @name divf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/divf}\n*/\nimport divf from './../../../base/ops/divf';\nsetReadOnly( ns, 'divf', divf );\n\n/**\n* @name imul\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/imul}\n*/\nimport imul from './../../../base/ops/imul';\nsetReadOnly( ns, 'imul', imul );\n\n/**\n* @name imuldw\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/imuldw}\n*/\nimport imuldw from './../../../base/ops/imuldw';\nsetReadOnly( ns, 'imuldw', imuldw );\n\n/**\n* @name mul\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/mul}\n*/\nimport mul from './../../../base/ops/mul';\nsetReadOnly( ns, 'mul', mul );\n\n/**\n* @name mulf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/mulf}\n*/\nimport mulf from './../../../base/ops/mulf';\nsetReadOnly( ns, 'mulf', mulf );\n\n/**\n* @name sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/sub}\n*/\nimport sub from './../../../base/ops/sub';\nsetReadOnly( ns, 'sub', sub );\n\n/**\n* @name subf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/subf}\n*/\nimport subf from './../../../base/ops/subf';\nsetReadOnly( ns, 'subf', subf );\n\n/**\n* @name umul\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/umul}\n*/\nimport umul from './../../../base/ops/umul';\nsetReadOnly( ns, 'umul', umul );\n\n/**\n* @name umuldw\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/ops/umuldw}\n*/\nimport umuldw from './../../../base/ops/umuldw';\nsetReadOnly( ns, 'umuldw', umuldw );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the squared absolute value of a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} squared absolute value\n*\n* @example\n* var v = abs2( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs2( 2.0 );\n* // returns 4.0\n*\n* @example\n* var v = abs2( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs2( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs2( NaN );\n* // returns NaN\n*/\nfunction abs2( x ) {\n\treturn x * x;\n}\n\n\n// EXPORTS //\n\nexport default abs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value of a single-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} squared absolute value\n*\n* @example\n* var v = abs2f( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs2f( 2.0 );\n* // returns 4.0\n*\n* @example\n* var v = abs2f( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs2f( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs2f( NaN );\n* // returns NaN\n*/\nfunction abs2f( x ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) * float64ToFloat32( x ) );\n}\n\n\n// EXPORTS //\n\nexport default abs2f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the absolute value of a single-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} absolute value\n*\n* @example\n* var v = absf( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = absf( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = absf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = absf( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = absf( NaN );\n* // returns NaN\n*/\nfunction absf( x ) {\n\treturn Math.abs( x ); // eslint-disable-line stdlib/no-builtin-math\n}\n\n\n// EXPORTS //\n\nexport default absf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the sum of three double-precision floating-point numbers.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @param {number} z - third input value\n* @returns {number} sum\n*\n* @example\n* var v = add3( -1.0, 5.0, 2.0 );\n* // returns 6.0\n*\n* @example\n* var v = add3( 2.0, 5.0, 2.0 );\n* // returns 9.0\n*\n* @example\n* var v = add3( 0.0, 5.0, 2.0 );\n* // returns 7.0\n*\n* @example\n* var v = add3( -0.0, 0.0, -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = add3( NaN, NaN, NaN );\n* // returns NaN\n*/\nfunction add3( x, y, z ) {\n\treturn x + y + z;\n}\n\n\n// EXPORTS //\n\nexport default add3;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the sum of four double-precision floating-point numbers.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @param {number} z - third input value\n* @param {number} w - fourth input value\n* @returns {number} sum\n*\n* @example\n* var v = add4( -1.0, 5.0, 2.0, -3.0 );\n* // returns 3.0\n*\n* @example\n* var v = add4( 2.0, 5.0, 2.0, -3.0 );\n* // returns 6.0\n*\n* @example\n* var v = add4( 0.0, 5.0, 2.0, -3.0 );\n* // returns 4.0\n*\n* @example\n* var v = add4( -0.0, 0.0, -0.0, -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = add4( NaN, NaN, NaN, NaN );\n* // returns NaN\n*/\nfunction add4( x, y, z, w ) {\n\treturn x + y + z + w;\n}\n\n\n// EXPORTS //\n\nexport default add4;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the sum of five double-precision floating-point numbers.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @param {number} z - third input value\n* @param {number} w - fourth input value\n* @param {number} u - fifth input value\n* @returns {number} sum\n*\n* @example\n* var v = add5( -1.0, 5.0, 2.0, -3.0, 4.0 );\n* // returns 7.0\n*\n* @example\n* var v = add5( 2.0, 5.0, 2.0, -3.0, 4.0 );\n* // returns 10.0\n*\n* @example\n* var v = add5( 0.0, 5.0, 2.0, -3.0, 4.0 );\n* // returns 8.0\n*\n* @example\n* var v = add5( -0.0, 0.0, -0.0, -0.0, -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = add5( NaN, NaN, NaN, NaN, NaN );\n* // returns NaN\n*/\nfunction add5( x, y, z, w, u ) {\n\treturn x + y + z + w + u;\n}\n\n\n// EXPORTS //\n\nexport default add5;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the sum of two single-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} sum\n*\n* @example\n* var v = addf( -1.0, 5.0 );\n* // returns 4.0\n*\n* @example\n* var v = addf( 2.0, 5.0 );\n* // returns 7.0\n*\n* @example\n* var v = addf( 0.0, 5.0 );\n* // returns 5.0\n*\n* @example\n* var v = addf( -0.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = addf( NaN, NaN );\n* // returns NaN\n*/\nfunction addf( x, y ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) + float64ToFloat32( y ) );\n}\n\n\n// EXPORTS //\n\nexport default addf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\nimport Complex128 from '@stdlib/complex/float64/ctor';\n\n\n// MAIN //\n\n/**\n* Negates a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = new Complex128( -4.2, 5.5 );\n* // returns \n*\n* var out = cneg( z );\n* // returns \n*\n* var re = real( out );\n* // returns 4.2\n*\n* var im = imag( out );\n* // returns -5.5\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = new Complex128( 0.0, 0.0 );\n* // returns \n*\n* var out = cneg( z );\n* // returns \n*\n* var re = real( out );\n* // returns -0.0\n*\n* var im = imag( out );\n* // returns -0.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = new Complex128( NaN, NaN );\n* // returns \n*\n* var out = cneg( z );\n* // returns \n*\n* var re = real( out );\n* // returns NaN\n*\n* var im = imag( out );\n* // returns NaN\n*/\nfunction cneg( z ) {\n\treturn new Complex128( -real( z ), -imag( z ) );\n}\n\n\n// EXPORTS //\n\nexport default cneg;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\nimport Complex64 from '@stdlib/complex/float32/ctor';\n\n\n// MAIN //\n\n/**\n* Negates a single-precision complex floating-point number.\n*\n* @param {Complex64} z - complex number\n* @returns {Complex64} result\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = new Complex64( -4.2, 5.5 );\n* // returns \n*\n* var out = cnegf( z );\n* // returns \n*\n* var re = realf( out );\n* // returns ~4.2\n*\n* var im = imagf( out );\n* // returns -5.5\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = new Complex64( 0.0, 0.0 );\n* // returns \n*\n* var out = cnegf( z );\n* // returns \n*\n* var re = realf( out );\n* // returns -0.0\n*\n* var im = imagf( out );\n* // returns -0.0\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var z = new Complex64( NaN, NaN );\n* // returns \n*\n* var out = cnegf( z );\n* // returns \n*\n* var re = realf( out );\n* // returns NaN\n*\n* var im = imagf( out );\n* // returns NaN\n*/\nfunction cnegf( z ) {\n\treturn new Complex64( -realf( z ), -imagf( z ) );\n}\n\n\n// EXPORTS //\n\nexport default cnegf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Divides two double-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value (dividend)\n* @param {number} y - second input value (divisor)\n* @returns {number} result\n*\n* @example\n* var v = div( -1.0, 5.0 );\n* // returns -0.2\n*\n* @example\n* var v = div( 2.0, 5.0 );\n* // returns 0.4\n*\n* @example\n* var v = div( 0.0, 5.0 );\n* // returns 0.0\n*\n* @example\n* var v = div( -0.0, 5.0 );\n* // returns -0.0\n*\n* @example\n* var v = div( NaN, NaN );\n* // returns NaN\n*/\nfunction div( x, y ) {\n\treturn x / y;\n}\n\n\n// EXPORTS //\n\nexport default div;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Divides two single-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value (dividend)\n* @param {number} y - second input value (divisor)\n* @returns {number} result\n*\n* @example\n* var v = divf( -1.0, 5.0 );\n* // returns ~-0.2\n*\n* @example\n* var v = divf( 2.0, 5.0 );\n* // returns ~0.4\n*\n* @example\n* var v = divf( 0.0, 5.0 );\n* // returns 0.0\n*\n* @example\n* var v = divf( -0.0, 5.0 );\n* // returns -0.0\n*\n* @example\n* var v = divf( NaN, NaN );\n* // returns NaN\n*/\nfunction divf( x, y ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) / float64ToFloat32( y ) );\n}\n\n\n// EXPORTS //\n\nexport default divf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Multiplies two single-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} result\n*\n* @example\n* var v = mulf( -1.0, 5.0 );\n* // returns -5.0\n*\n* @example\n* var v = mulf( 2.0, 5.0 );\n* // returns 10.0\n*\n* @example\n* var v = mulf( 0.0, 5.0 );\n* // returns 0.0\n*\n* @example\n* var v = mulf( -0.0, 0.0 );\n* // returns -0.0\n*\n* @example\n* var v = mulf( NaN, NaN );\n* // returns NaN\n*/\nfunction mulf( x, y ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) * float64ToFloat32( y ) );\n}\n\n\n// EXPORTS //\n\nexport default mulf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Subtracts two single-precision floating-point numbers `x` and `y`.\n*\n* @param {number} x - first input value\n* @param {number} y - second input value\n* @returns {number} result\n*\n* @example\n* var v = subf( -1.0, 5.0 );\n* // returns -6.0\n*\n* @example\n* var v = subf( 2.0, 5.0 );\n* // returns -3.0\n*\n* @example\n* var v = subf( 0.0, 5.0 );\n* // returns -5.0\n*\n* @example\n* var v = subf( -0.0, 0.0 );\n* // returns -0.0\n*\n* @example\n* var v = subf( NaN, NaN );\n* // returns NaN\n*/\nfunction subf( x, y ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) - float64ToFloat32( y ) );\n}\n\n\n// EXPORTS //\n\nexport default subf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// Define a mask for the least significant 16 bits (low word): 65535 => 0x0000ffff => 00000000000000001111111111111111\nvar LOW_WORD_MASK = 0x0000ffff>>>0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Performs C-like multiplication of two unsigned 32-bit integers.\n*\n* ## Method\n*\n* - To emulate C-like multiplication without the aid of 64-bit integers, we recognize that a 32-bit integer can be split into two 16-bit words\n*\n* ```tex\n* a = w_h*2^{16} + w_l\n* ```\n*\n* where \\\\( w_h \\\\) is the most significant 16 bits and \\\\( w_l \\\\) is the least significant 16 bits. For example, consider the maximum unsigned 32-bit integer \\\\( 2^{32}-1 \\\\)\n*\n* ```binarystring\n* 11111111111111111111111111111111\n* ```\n*\n* The 16-bit high word is then\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* and the 16-bit low word\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* If we cast the high word to 32-bit precision and multiply by \\\\( 2^{16} \\\\) (equivalent to a 16-bit left shift), then the bit sequence is\n*\n* ```binarystring\n* 11111111111111110000000000000000\n* ```\n*\n* Similarly, upon casting the low word to 32-bit precision, the bit sequence is\n*\n* ```binarystring\n* 00000000000000001111111111111111\n* ```\n*\n* From the rules of binary addition, we recognize that adding the two 32-bit values for the high and low words will return our original value \\\\( 2^{32}-1 \\\\).\n*\n* - Accordingly, the multiplication of two 32-bit integers can be expressed\n*\n* ```tex\n* \\begin{align*}\n* a \\cdot b &= ( a_h \\cdot 2^{16} + a_l) \\cdot ( b_h \\cdot 2^{16} + b_l) \\\\\n* &= a_l \\cdot b_l + a_h \\cdot b_l \\cdot 2^{16} + a_l \\cdot b_h \\cdot 2^{16} + (a_h \\cdot b_h) \\cdot 2^{32} \\\\\n* &= a_l \\cdot b_l + (a_h \\cdot b_l + a_l \\cdot b_h) \\cdot 2^{16} + (a_h \\cdot b_h) \\cdot 2^{32}\n* \\end{align*}\n* ```\n*\n* - We note that multiplying (dividing) an integer by \\\\( 2^n \\\\) is equivalent to performing a left (right) shift of \\\\( n \\\\) bits.\n*\n* - Further, as we want to return an integer of the same precision, for a 32-bit integer, the return value will be modulo \\\\( 2^{32} \\\\). Stated another way, we only care about the low word of a 64-bit result.\n*\n* - Accordingly, the last term, being evenly divisible by \\\\( 2^{32} \\\\), drops from the equation leaving the remaining two terms as the remainder.\n*\n* ```tex\n* a \\cdot b = a_l \\cdot b_l + (a_h \\cdot b_l + a_l \\cdot b_h) << 16\n* ```\n*\n* - Lastly, the second term in the above equation contributes to the middle bits and may cause the product to \"overflow\". However, we can disregard (`>>>0`) overflow bits due to modulo arithmetic, as discussed earlier with regard to the term involving the partial product of high words.\n*\n* @param {uinteger32} a - integer\n* @param {uinteger32} b - integer\n* @returns {uinteger32} product\n*\n* @example\n* var v = umul( 10>>>0, 4>>>0 );\n* // returns 40\n*/\nfunction umul( a, b ) {\n\tvar lbits;\n\tvar mbits;\n\tvar ha;\n\tvar hb;\n\tvar la;\n\tvar lb;\n\n\ta >>>= 0; // asm type annotation\n\tb >>>= 0; // asm type annotation\n\n\t// Isolate the most significant 16-bits:\n\tha = ( a>>>16 )>>>0; // asm type annotation\n\thb = ( b>>>16 )>>>0; // asm type annotation\n\n\t// Isolate the least significant 16-bits:\n\tla = ( a&LOW_WORD_MASK )>>>0; // asm type annotation\n\tlb = ( b&LOW_WORD_MASK )>>>0; // asm type annotation\n\n\t// Compute partial sums:\n\tlbits = ( la*lb )>>>0; // asm type annotation; no integer overflow possible\n\tmbits = ( ((ha*lb) + (la*hb))<<16 )>>>0; // asm type annotation; possible integer overflow\n\n\t// The final `>>>0` converts the intermediate sum to an unsigned integer (possible integer overflow during sum):\n\treturn ( lbits + mbits )>>>0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default umul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport sqrt from './../../../../base/special/sqrt';\nimport PIO4 from '@stdlib/constants/float64/fourth-pi';\nimport ratevalPQ from './rational_pq.js';\nimport ratevalRS from './rational_rs.js';\n\n\n// VARIABLES //\n\nvar MOREBITS = 6.123233995736765886130e-17; // pi/2 = PIO2 + MOREBITS\n\n\n// MAIN //\n\n/**\n* Computes the arcsine of a double-precision floating-point number.\n*\n* ## Method\n*\n* - A rational function of the form\n*\n* ```tex\n* x + x^3 \\frac{P(x^2)}{Q(x^2)}\n* ```\n*\n* is used for \\\\(\\|x\\|\\\\) in the interval \\\\(\\[0, 0.5\\]\\\\). If \\\\(\\|x\\| > 0.5\\\\), it is transformed by the identity\n*\n* ```tex\n* \\operatorname{asin}(x) = \\frac{\\pi}{2} - 2 \\operatorname{asin}( \\sqrt{ (1-x)/2 } )\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:-----------|:-------|:---------|:--------|:--------|\n* | DEC | -1, 1 | 40000 | 2.6e-17 | 7.1e-18 |\n* | IEEE | -1, 1 | 10^6 | 1.9e-16 | 5.4e-17 |\n*\n* @param {number} x - input value\n* @returns {number} arcsine (in radians)\n*\n* @example\n* var v = asin( 0.0 );\n* // returns ~0.0\n*\n* @example\n* var v = asin( 3.141592653589793/4.0 );\n* // returns ~0.903\n*\n* @example\n* var v = asin( -3.141592653589793/6.0 );\n* // returns ~-0.551\n*\n* @example\n* var v = asin( NaN );\n* // returns NaN\n*/\nfunction asin( x ) {\n\tvar sgn;\n\tvar zz;\n\tvar a;\n\tvar p;\n\tvar z;\n\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > 0.0 ) {\n\t\ta = x;\n\t} else {\n\t\tsgn = true;\n\t\ta = -x;\n\t}\n\tif ( a > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( a > 0.625 ) {\n\t\t// arcsin(1-x) = pi/2 - sqrt(2x)(1+R(x))\n\t\tzz = 1.0 - a;\n\t\tp = zz * ratevalRS( zz );\n\t\tzz = sqrt( zz + zz );\n\t\tz = PIO4 - zz;\n\t\tzz = ( zz*p ) - MOREBITS;\n\t\tz -= zz;\n\t\tz += PIO4;\n\t} else {\n\t\tif ( a < 1.0e-8 ) {\n\t\t\treturn x;\n\t\t}\n\t\tzz = a * a;\n\t\tz = zz * ratevalPQ( zz );\n\t\tz = ( a*z ) + a;\n\t}\n\treturn ( sgn ) ? -z : z;\n}\n\n\n// EXPORTS //\n\nexport default asin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.08333333333333809;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 28.536655482610616 + (x * (-25.56901049652825 + (x * (6.968710824104713 + (x * (-0.5634242780008963 + (x * 0.002967721961301243))))))); // eslint-disable-line max-len\n\t\ts2 = 342.43986579130785 + (x * (-383.8770957603691 + (x * (147.0656354026815 + (x * (-21.947795316429207 + (x * 1.0))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.002967721961301243 + (x * (-0.5634242780008963 + (x * (6.968710824104713 + (x * (-25.56901049652825 + (x * 28.536655482610616))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-21.947795316429207 + (x * (147.0656354026815 + (x * (-383.8770957603691 + (x * 342.43986579130785))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666666666666713;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -8.198089802484825 + (x * (19.562619833175948 + (x * (-16.262479672107002 + (x * (5.444622390564711 + (x * (-0.6019598008014124 + (x * 0.004253011369004428))))))))); // eslint-disable-line max-len\n\t\ts2 = -49.18853881490881 + (x * (139.51056146574857 + (x * (-147.1791292232726 + (x * (70.49610280856842 + (x * (-14.740913729888538 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.004253011369004428 + (x * (-0.6019598008014124 + (x * (5.444622390564711 + (x * (-16.262479672107002 + (x * (19.562619833175948 + (x * -8.198089802484825))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-14.740913729888538 + (x * (70.49610280856842 + (x * (-147.1791292232726 + (x * (139.51056146574857 + (x * -49.18853881490881))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport asin from './../../../../base/special/asin';\nimport sqrt from './../../../../base/special/sqrt';\nimport PIO4 from '@stdlib/constants/float64/fourth-pi';\n\n\n// VARIABLES //\n\nvar MOREBITS = 6.123233995736765886130e-17; // pi/2 = PIO2 + MOREBITS.\n\n\n// MAIN //\n\n/**\n* Computes the arccosine of a double-precision floating-point number.\n*\n* ## Method\n*\n* - Analytically,\n*\n* ```tex\n* \\operatorname{acos}(x) = \\frac{\\pi}{2} - \\operatorname{asin}(x)\n* ```\n*\n* However, if \\\\(\\|x\\|\\\\) is near \\\\(1\\\\), there is cancellation error in subtracting \\\\(\\opertorname{asin}(x)\\\\) from \\\\(\\pi/2\\\\). Hence, if \\\\(x < -0.5\\\\),\n*\n* ```tex\n* \\operatorname{acos}(x) = \\pi - 2.0 \\cdot \\operatorname{asin}(\\sqrt{(1+x)/2})\n* ```\n*\n* or, if \\\\(x > +0.5\\\\),\n*\n* ```tex\n* \\operatorname{acos}(x) = 2.0 \\cdot \\operatorname{asin}( \\sqrt{(1-x)/2} )}\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:-----------|:------:|:---------|:--------|:--------|\n* | DEC | -1, 1 | 50000 | 3.3e-17 | 8.2e-18 |\n* | IEEE | -1, 1 | 10^6 | 2.2e-16 | 6.5e-17 |\n*\n* @param {number} x - input value\n* @returns {number} arccosine (in radians)\n*\n* @example\n* var v = acos( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = acos( 0.707 ); // ~pi/4\n* // returns ~0.7855\n*\n* @example\n* var v = acos( NaN );\n* // returns NaN\n*/\nfunction acos( x ) {\n\tvar z;\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x < -1.0 || x > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x > 0.5 ) {\n\t\treturn 2.0 * asin( sqrt( 0.5 - (0.5*x) ) );\n\t}\n\tz = PIO4 - asin( x );\n\tz += MOREBITS;\n\tz += PIO4;\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default acos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// 180.0 / π\nvar CONST_180_DIV_PI = 57.29577951308232;\n\n\n// MAIN //\n\n/**\n* Converts an angle from radians to degrees.\n*\n* @param {number} x - angle in radians\n* @returns {number} angle in degrees\n*\n* @example\n* var d = rad2deg( 3.141592653589793/2.0 );\n* // returns 90.0\n*\n* @example\n* var d = rad2deg( -3.141592653589793/4.0 );\n* // returns -45.0\n*\n* @example\n* var d = rad2deg( NaN );\n* // returns NaN\n*/\nfunction rad2deg( x ) {\n\treturn x * CONST_180_DIV_PI;\n}\n\n\n// EXPORTS //\n\nexport default rad2deg;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Compute the principal square root of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} principal square root\n*\n* @example\n* var v = sqrtf( 4.0 );\n* // returns 2.0\n*\n* v = sqrtf( 9.0 );\n* // returns 3.0\n*\n* v = sqrtf( 0.0 );\n* // returns 0.0\n*\n* v = sqrtf( -4.0 );\n* // returns NaN\n*\n* v = sqrtf( NaN );\n* // returns NaN\n*/\nfunction sqrtf( x ) {\n\treturn float64ToFloat32( sqrt( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default sqrtf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666586697101593;\n\t}\n\treturn float64ToFloat32(0.16666586697101593 + float64ToFloat32(x * float64ToFloat32(-0.04274342209100723 + float64ToFloat32(x * -0.008656363002955914)))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_acosf.c?view=markup}. The implementation follows the original, but has been modified according to project conventions.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport isnanf from './../../../../base/assert/is-nanf';\nimport sqrtf from './../../../../base/special/sqrtf';\nimport absf from './../../../../base/special/absf';\nimport toWord from '@stdlib/number/float32/base/to-word';\nimport fromWord from '@stdlib/number/float32/base/from-word';\nimport PI from '@stdlib/constants/float32/pi';\nimport polyp from './poly_p.js';\n\n\n// VARIABLES //\n\nvar ALMOST_PI = 3.1415925026e+00; // 0 10000000 10010010000111111011010 => 0x40490fda\nvar PIO2_HI = 1.5707962513e+00; // 0 01111111 10010010000111111011010 => 0x3fc90fda\nvar PIO2_LO = 7.5497894159e-08; // 0 01100111 01000100010000101101000 => 0x33a22168\nvar MASK_LO = 0xfffff000|0; // 1 11111111 11111111111000000000000 => 4294963200 => 0xfffff000\nvar SMALL = 1.4901161193847656e-8; // 2^-26\nvar QS1 = -7.0662963390e-01;\nvar PIO2 = float64ToFloat32( PIO2_HI + PIO2_LO );\n\n\n// MAIN //\n\n/**\n* Computes the arccosine of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arccosine (in radians)\n*\n* @example\n* var v = acosf( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = acosf( 0.707 );\n* // returns ~0.7855\n*\n* @example\n* var v = acosf( NaN );\n* // returns NaN\n*/\nfunction acosf( x ) {\n\tvar idf;\n\tvar df;\n\tvar ax;\n\tvar z;\n\tvar p;\n\tvar q;\n\tvar r;\n\tvar s;\n\tvar c;\n\tvar w;\n\n\tif ( isnanf( x ) ) {\n\t\treturn NaN;\n\t}\n\tx = float64ToFloat32( x );\n\tif ( x < -1.0 || x > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x === -1.0 ) {\n\t\treturn PI;\n\t}\n\tax = absf( x );\n\tif ( ax < 0.5 ) {\n\t\tif ( ax <= SMALL ) {\n\t\t\treturn PIO2; // acos(~0) = π/2\n\t\t}\n\t\tz = float64ToFloat32( x * x );\n\t\tp = float64ToFloat32( z * polyp( z ) );\n\t\tq = float64ToFloat32( 1.0 + float64ToFloat32( z * QS1 ) );\n\t\tr = float64ToFloat32( p / q );\n\t\treturn float64ToFloat32( PIO2_HI - float64ToFloat32( x - float64ToFloat32( PIO2_LO - float64ToFloat32( x * r ) ) ) ); // eslint-disable-line max-len\n\t}\n\tif ( x < -0.5 ) {\n\t\tz = float64ToFloat32( 0.5 * float64ToFloat32( 1.0 + x ) );\n\t\tp = float64ToFloat32( z * polyp( z ) );\n\t\tq = float64ToFloat32( 1.0 + float64ToFloat32( z * QS1 ) );\n\t\ts = sqrtf( z );\n\t\tr = float64ToFloat32( p / q );\n\t\tw = float64ToFloat32( float64ToFloat32( r * s ) - PIO2_LO );\n\t\treturn float64ToFloat32( ALMOST_PI - float64ToFloat32( 2.0 * float64ToFloat32( s + w ) ) ); // eslint-disable-line max-len\n\t}\n\t// x > 0.5\n\tz = float64ToFloat32( 0.5 * float64ToFloat32( 1.0 - x ) );\n\ts = sqrtf( z );\n\n\tidf = toWord( s );\n\tdf = fromWord( idf&MASK_LO );\n\n\tc = float64ToFloat32( float64ToFloat32( z - float64ToFloat32( df * df ) ) / float64ToFloat32( s + df ) ); // eslint-disable-line max-len\n\tp = float64ToFloat32( z * polyp( z ) );\n\tq = float64ToFloat32( 1.0 + float64ToFloat32( z * QS1 ) );\n\tr = float64ToFloat32( p / q );\n\tw = float64ToFloat32( float64ToFloat32( r * s ) + c );\n\treturn float64ToFloat32( 2.0 * float64ToFloat32( df + w ) );\n}\n\n\n// EXPORTS //\n\nexport default acosf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FDLIBM]{@link http://www.netlib.org/fdlibm/s_log1p.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport FLOAT64_EXPONENT_BIAS from '@stdlib/constants/float64/exponent-bias';\nimport polyval from './polyval_lp.js';\n\n\n// VARIABLES //\n\n// High and low words of ln(2):\nvar LN2_HI = 6.93147180369123816490e-01; // 0x3fe62e42 0xfee00000\nvar LN2_LO = 1.90821492927058770002e-10; // 0x3dea39ef 0x35793c76\n\n// sqrt(2)-1:\nvar SQRT2M1 = 4.142135623730950488017e-01; // 0x3fda8279 0x99fcef34\n\n// sqrt(2)/2-1:\nvar SQRT2HALFM1 = -2.928932188134524755992e-01; // 0xbfd2bec3 0x33018866\n\n// 2**-29:\nvar SMALL = 1.862645149230957e-09; // 0x3e200000 0x00000000\n\n// 2**-54:\nvar TINY = 5.551115123125783e-17;\n\n// Max integer (unsafe) => 2**53:\nvar TWO53 = 9007199254740992;\n\n// 2/3:\nvar TWO_THIRDS = 6.666666666666666666e-01;\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of \\\\(1+x\\\\).\n*\n* ## Method\n*\n* 1. Argument Reduction: find \\\\(k\\\\) and \\\\(f\\\\) such that\n*\n* ```tex\n* 1+x = 2^k (1+f)\n* ```\n*\n* where\n*\n* ```tex\n* \\frac{\\sqrt{2}}{2} < 1+f < \\sqrt{2}\n* ```\n*\n* \n*\n* If \\\\(k=0\\\\), then \\\\(f=x\\\\) is exact. However, if \\\\(k \\neq 0\\\\), then \\\\(f\\\\) may not be representable exactly. In that case, a correction term is needed. Let\n*\n* ```tex\n* u = \\operatorname{round}(1+x)\n* ```\n*\n* and\n*\n* ```tex\n* c = (1+x) - u\n* ```\n*\n* then\n*\n* ```tex\n* \\ln (1+x) - \\ln u \\approx \\frac{c}{u}\n* ```\n*\n* We can thus proceed to compute \\\\(\\ln(u)\\\\), and add back the correction term \\\\(c/u\\\\).\n*\n* \n*\n* \n*\n* When \\\\(x > 2^{53}\\\\), one can simply return \\\\(\\ln(x)\\\\).\n*\n* \n*\n* 2. Approximation of \\\\(\\operatorname{log1p}(f)\\\\). Let\n*\n* ```tex\n* s = \\frac{f}{2+f}\n* ```\n*\n* based on\n*\n* ```tex\n* \\begin{align*}\n* \\ln 1+f &= \\ln (1+s) - \\ln (1-s) \\\\\n* &= 2s + \\frac{2}{3} s^3 + \\frac{2}{5} s^5 + ... \\\\\n* &= 2s + sR \\\\\n* \\end{align*}\n* ```\n*\n* We use a special Reme algorithm on \\\\(\\[0,0.1716\\]\\\\) to generate a polynomial of degree \\\\(14\\\\) to approximate \\\\(R\\\\). The maximum error of this polynomial approximation is bounded by \\\\(2^{-58.45}\\\\). In other words,\n*\n* ```tex\n* R(z) \\approx \\mathrm{Lp}_1 s^2 + \\mathrm{Lp}_2 s^4 + \\mathrm{Lp}_3 s^6 + \\mathrm{Lp}_4 s^8 + \\mathrm{Lp}_5 s^{10} + \\mathrm{Lp}_6 s^{12} + \\mathrm{Lp}_7 s^{14}\n* ```\n*\n* and\n*\n* ```tex\n* | \\mathrm{Lp}_1 s^2 + \\ldots + \\mathrm{Lp}_7 s^14 - R(z) | \\leq 2^{-58.45}\n* ```\n*\n* \n*\n* The values of \\\\(Lp1\\\\) to \\\\(Lp7\\\\) may be found in the source.\n*\n* \n*\n* Note that\n*\n* ```tex\n* \\begin{align*}\n* 2s &= f - sf \\\\\n* &= f - \\frac{f^2}{2} + s \\frac{f^2}{2} \\\\\n* \\end{align*}\n* ```\n*\n* In order to guarantee error in \\\\(\\ln\\\\) below \\\\(1\\ \\mathrm{ulp}\\\\), we compute the log by\n*\n* ```tex\n* \\operatorname{log1p}(f) = f - \\biggl(\\frac{f^2}{2} - s\\biggl(\\frac{f^2}{2}+R\\biggr)\\biggr)\n* ```\n*\n* 3. Finally,\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{log1p}(x) &= k \\cdot \\mathrm{ln2} + \\operatorname{log1p}(f) \\\\\n* &= k \\cdot \\mathrm{ln2}_{hi}+\\biggl(f-\\biggl(\\frac{f^2}{2}-\\biggl(s\\biggl(\\frac{f^2}{2}+R\\biggr)+k \\cdot \\mathrm{ln2}_{lo}\\biggr)\\biggr)\\biggr) \\\\\n* \\end{align*}\n* ```\n*\n* Here \\\\(\\mathrm{ln2}\\\\) is split into two floating point numbers:\n*\n* ```tex\n* \\mathrm{ln2}_{hi} + \\mathrm{ln2}_{lo}\n* ```\n*\n* where \\\\(n \\cdot \\mathrm{ln2}_{hi}\\\\) is always exact for \\\\(|n| < 2000\\\\).\n*\n* ## Special Cases\n*\n* - \\\\(\\operatorname{log1p}(x) = \\mathrm{NaN}\\\\) with signal if \\\\(x < -1\\\\) (including \\\\(-\\infty\\\\))\n* - \\\\(\\operatorname{log1p}(+\\infty) = +\\infty\\\\)\n* - \\\\(\\operatorname{log1p}(-1) = -\\infty\\\\) with signal\n* - \\\\(\\operatorname{log1p}(\\mathrm{NaN})= \\mathrm{NaN}\\\\) with no signal\n*\n* ## Notes\n*\n* - According to an error analysis, the error is always less than \\\\(1\\\\) ulp (unit in the last place).\n*\n* - The hexadecimal values are the intended ones for the used constants. The decimal values may be used, provided that the compiler will convert from decimal to binary accurately enough to produce the hexadecimal values shown.\n*\n* - Assuming \\\\(\\ln(x)\\\\) is accurate, the following algorithm can be used to evaluate \\\\(\\operatorname{log1p}(x)\\\\) to within a few ULP:\n*\n* ```javascript\n* var u = 1.0 + x;\n* if ( u === 1.0 ) {\n* return x;\n* } else {\n* return ln(u) * (x/(u-1.0));\n* }\n* ```\n*\n* See HP-15C Advanced Functions Handbook, p.193.\n*\n* @param {number} x - input value\n* @returns {number} the natural logarithm of `1+x`\n*\n* @example\n* var v = log1p( 4.0 );\n* // returns ~1.609\n*\n* @example\n* var v = log1p( -1.0 );\n* // returns -Infinity\n*\n* @example\n* var v = log1p( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = log1p( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = log1p( -2.0 );\n* // returns NaN\n*\n* @example\n* var v = log1p( NaN );\n* // returns NaN\n*/\nfunction log1p( x ) {\n\tvar hfsq;\n\tvar hu;\n\tvar y;\n\tvar f;\n\tvar c;\n\tvar s;\n\tvar z;\n\tvar R;\n\tvar u;\n\tvar k;\n\n\tif ( x < -1.0 || isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === -1.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( x === PINF ) {\n\t\treturn x;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn x; // handle +-0 (IEEE 754-2008 spec)\n\t}\n\t// Set y = |x|:\n\tif ( x < 0.0 ) {\n\t\ty = -x;\n\t} else {\n\t\ty = x;\n\t}\n\t// Argument reduction...\n\tk = 1;\n\n\t// Check if argument reduction is needed and if we can just return a small value approximation requiring less computation but with equivalent accuracy...\n\tif ( y < SQRT2M1 ) { // if |x| < sqrt(2)-1 => ~0.41422\n\t\tif ( y < SMALL ) { // if |x| < 2**-29\n\t\t\tif ( y < TINY ) { // if |x| < 2**-54\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\t// Use a simple two-term Taylor series...\n\t\t\treturn x - ( x*x*0.5 );\n\t\t}\n\t\t// Check if `f=x` can be represented exactly (no need for correction terms), allowing us to bypass argument reduction...\n\t\tif ( x > SQRT2HALFM1 ) { // if x > sqrt(2)/2-1 => ~-0.2929\n\t\t\t// -0.2929 < x < 0.41422\n\t\t\tk = 0;\n\t\t\tf = x; // exact\n\t\t\thu = 1;\n\t\t}\n\t}\n\t// Address case where `f` cannot be represented exactly...\n\tif ( k !== 0 ) {\n\t\tif ( y < TWO53 ) {\n\t\t\tu = 1.0 + x;\n\t\t\thu = getHighWord( u );\n\n\t\t\t// Bit shift to isolate the exponent and then subtract the bias:\n\t\t\tk = (hu>>20) - FLOAT64_EXPONENT_BIAS;\n\n\t\t\t// Correction term...\n\t\t\tif ( k > 0 ) { // positive unbiased exponent\n\t\t\t\tc = 1.0 - (u-x);\n\t\t\t} else { // nonpositive unbiased exponent\n\t\t\t\tc = x - (u-1.0);\n\t\t\t}\n\t\t\tc /= u;\n\t\t} else {\n\t\t\tu = x;\n\t\t\thu = getHighWord( u );\n\n\t\t\t// Bit shift to isolate the exponent and then subtract the bias:\n\t\t\tk = (hu>>20) - FLOAT64_EXPONENT_BIAS;\n\n\t\t\t// Correction term is zero:\n\t\t\tc = 0;\n\t\t}\n\t\t// Apply a bit mask (0 00000000000 11111111111111111111) to remove the exponent:\n\t\thu &= 0x000fffff; // max value => 1048575\n\n\t\t// Check if u significand is less than sqrt(2) significand => 0x6a09e => 01101010000010011110\n\t\tif ( hu < 434334 ) {\n\t\t\t// Normalize u by setting the exponent to 1023 (bias) => 0x3ff00000 => 0 01111111111 00000000000000000000\n\t\t\tu = setHighWord( u, hu|0x3ff00000 );\n\t\t} else {\n\t\t\tk += 1;\n\n\t\t\t// Normalize u/2 by setting the exponent to 1022 (bias-1 => 2**-1 = 1/2) => 0x3fe00000 => 0 01111111110 00000000000000000000\n\t\t\tu = setHighWord( u, hu|0x3fe00000 );\n\n\t\t\t// Subtract hu significand from next largest hu => 0 00000000001 00000000000000000000 => 0x00100000 => 1048576\n\t\t\thu = (1048576-hu)>>2;\n\t\t}\n\t\tf = u - 1.0;\n\t}\n\t// Approximation of log1p(f)...\n\thfsq = 0.5 * f * f;\n\tif ( hu === 0 ) { // if |f| < 2**-20\n\t\tif ( f === 0.0 ) {\n\t\t\tc += k * LN2_LO;\n\t\t\treturn ( k * LN2_HI ) + c;\n\t\t}\n\t\tR = hfsq * (1.0 - ( TWO_THIRDS*f ) ); // avoid division\n\t\treturn ( k*LN2_HI ) - ( (R - ( (k*LN2_LO) + c)) - f );\n\t}\n\ts = f / (2.0 + f);\n\tz = s * s;\n\n\tR = z * polyval( z );\n\n\tif ( k === 0 ) {\n\t\treturn f - ( hfsq - ( s*(hfsq+R) ) );\n\t}\n\treturn ( k*LN2_HI ) - ( (hfsq - ( (s*(hfsq+R)) + ((k*LN2_LO) + c))) - f );\n}\n\n\n// EXPORTS //\n\nexport default log1p;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.6666666666666735;\n\t}\n\treturn 0.6666666666666735 + (x * (0.3999999999940942 + (x * (0.2857142874366239 + (x * (0.22222198432149784 + (x * (0.1818357216161805 + (x * (0.15313837699209373 + (x * 0.14798198605116586))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/e_log.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport isnan from './../../../../base/assert/is-nan';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport polyvalP from './polyval_p.js';\nimport polyvalQ from './polyval_q.js';\n\n\n// VARIABLES //\n\nvar LN2_HI = 6.93147180369123816490e-01; // 3FE62E42 FEE00000\nvar LN2_LO = 1.90821492927058770002e-10; // 3DEA39EF 35793C76\nvar TWO54 = 1.80143985094819840000e+16; // 0x43500000, 0x00000000\nvar ONE_THIRD = 0.33333333333333333;\n\n// 0x000fffff = 1048575 => 0 00000000000 11111111111111111111\nvar HIGH_SIGNIFICAND_MASK = 0x000fffff|0; // asm type annotation\n\n// 0x7ff00000 = 2146435072 => 0 11111111111 00000000000000000000 => biased exponent: 2047 = 1023+1023 => 2^1023\nvar HIGH_MAX_NORMAL_EXP = 0x7ff00000|0; // asm type annotation\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000 => biased exponent: 1 = -1022+1023 => 2^-1022\nvar HIGH_MIN_NORMAL_EXP = 0x00100000|0; // asm type annotation\n\n// 0x3ff00000 = 1072693248 => 0 01111111111 00000000000000000000 => biased exponent: 1023 = 0+1023 => 2^0 = 1\nvar HIGH_BIASED_EXP_0 = 0x3ff00000|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of a double-precision floating-point number.\n*\n* @param {NonNegativeNumber} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = ln( 4.0 );\n* // returns ~1.386\n*\n* @example\n* var v = ln( 0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = ln( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = ln( NaN );\n* // returns NaN\n*\n* @example\n* var v = ln( -4.0 );\n* // returns NaN\n*/\nfunction ln( x ) {\n\tvar hfsq;\n\tvar hx;\n\tvar t2;\n\tvar t1;\n\tvar k;\n\tvar R;\n\tvar f;\n\tvar i;\n\tvar j;\n\tvar s;\n\tvar w;\n\tvar z;\n\n\tif ( x === 0.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( isnan( x ) || x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\thx = getHighWord( x );\n\tk = 0|0; // asm type annotation\n\tif ( hx < HIGH_MIN_NORMAL_EXP ) {\n\t\t// Case: 0 < x < 2**-1022\n\t\tk -= 54|0; // asm type annotation\n\n\t\t// Subnormal number, scale up `x`:\n\t\tx *= TWO54;\n\t\thx = getHighWord( x );\n\t}\n\tif ( hx >= HIGH_MAX_NORMAL_EXP ) {\n\t\treturn x + x;\n\t}\n\tk += ( ( hx>>20 ) - BIAS )|0; // asm type annotation\n\thx &= HIGH_SIGNIFICAND_MASK;\n\ti = ( (hx+0x95f64) & 0x100000 )|0; // asm type annotation\n\n\t// Normalize `x` or `x/2`...\n\tx = setHighWord( x, hx|(i^HIGH_BIASED_EXP_0) );\n\tk += ( i>>20 )|0; // asm type annotation\n\tf = x - 1.0;\n\tif ( (HIGH_SIGNIFICAND_MASK&(2+hx)) < 3 ) {\n\t\t// Case: -2**-20 <= f < 2**-20\n\t\tif ( f === 0.0 ) {\n\t\t\tif ( k === 0 ) {\n\t\t\t\treturn 0.0;\n\t\t\t}\n\t\t\treturn (k * LN2_HI) + (k * LN2_LO);\n\t\t}\n\t\tR = f * f * ( 0.5 - (ONE_THIRD*f) );\n\t\tif ( k === 0 ) {\n\t\t\treturn f - R;\n\t\t}\n\t\treturn (k * LN2_HI) - ( (R-(k*LN2_LO)) - f );\n\t}\n\ts = f / (2.0 + f);\n\tz = s * s;\n\ti = ( hx - 0x6147a )|0; // asm type annotation\n\tw = z * z;\n\tj = ( 0x6b851 - hx )|0; // asm type annotation\n\tt1 = w * polyvalP( w );\n\tt2 = z * polyvalQ( w );\n\ti |= j;\n\tR = t2 + t1;\n\tif ( i > 0 ) {\n\t\thfsq = 0.5 * f * f;\n\t\tif ( k === 0 ) {\n\t\t\treturn f - ( hfsq - (s * (hfsq+R)) );\n\t\t}\n\t\treturn (k * LN2_HI) - ( hfsq - ((s*(hfsq+R))+(k*LN2_LO)) - f );\n\t}\n\tif ( k === 0 ) {\n\t\treturn f - (s*(f-R));\n\t}\n\treturn (k * LN2_HI) - ( ( (s*(f-R)) - (k*LN2_LO) ) - f );\n}\n\n\n// EXPORTS //\n\nexport default ln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.3999999999940942;\n\t}\n\treturn 0.3999999999940942 + (x * (0.22222198432149784 + (x * 0.15313837699209373))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.6666666666666735;\n\t}\n\treturn 0.6666666666666735 + (x * (0.2857142874366239 + (x * (0.1818357216161805 + (x * 0.14798198605116586))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_acosh.c?view=markup}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport LN2 from '@stdlib/constants/float64/ln-two';\nimport ln from './../../../../base/special/ln';\n\n\n// VARIABLES //\n\nvar HUGE = 1 << 28; // 2**28\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arccosine of a double-precision floating-point number.\n*\n* ## Method\n*\n* Based on\n*\n* ```tex\n* \\operatorname{acosh}(x) = \\log \\left[ x + \\sqrt{ x^2 - 1 } \\right]\n* ```\n*\n* we have\n*\n* ```tex\n* \\operatorname{acosh}(x) = \\begin{cases}\n* \\log(x) + \\tfrac{\\ln}{2} & \\text{ if x is large } \\\\\n* \\log \\left( 2x-\\tfrac{1}{\\sqrt{x^2-1}+x} \\right) & \\text{ if } x > 2 \\\\\n* \\operatorname{log1p}\\left( x - 1 + \\sqrt{ 2 \\cdot (x-1) + (x-1)^2 } \\right) & \\text{ otherwise }\n* \\end{cases}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{acosh}(x) &= \\mathrm{NaN}\\ \\text{ if } x < 1 \\\\\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arccosine\n*\n* @example\n* var v = acosh( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = acosh( 2.0 );\n* // returns ~1.317\n*\n* @example\n* var v = acosh( NaN );\n* // returns NaN\n*/\nfunction acosh( x ) {\n\tvar t;\n\tif ( isnan( x ) || x < 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x >= HUGE ) {\n\t\treturn ln( x ) + LN2;\n\t}\n\tif ( x > 2.0 ) {\n\t\treturn ln( (2.0*x) - ( 1.0 / ( x + sqrt( (x*x) - 1.0 ) ) ) );\n\t}\n\t// Case: 2 >= x > 1\n\tt = x - 1.0;\n\treturn log1p( t + sqrt( (2.0*t) + (t*t) ) );\n}\n\n\n// EXPORTS //\n\nexport default acosh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport PIO2 from '@stdlib/constants/float64/half-pi';\nimport PIO4 from '@stdlib/constants/float64/fourth-pi';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport polyvalP from './polyval_p.js';\nimport polyvalQ from './polyval_q.js';\n\n\n// VARIABLES //\n\nvar MOREBITS = 6.123233995736765886130e-17; // pi/2 = PIO2 + MOREBITS.\nvar T3P8 = 2.41421356237309504880; // tan( 3*pi/8 )\n\n\n// MAIN //\n\n/**\n* Computes the arctangent of a double-precision floating-point number.\n*\n* ## Method\n*\n* - Range reduction is from three intervals into the interval from 0 to 0.66. The approximant uses a rational function of degree 4/5 of the form\n*\n* ```tex\n* x + x^3 \\frac{P(x)}{Q(x)}\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:-----------|:--------|:---------|:--------|:--------|\n* | DEC | -10, 10 | 50000 | 2.4e-17 | 8.3e-18 |\n* | IEEE | -10, 10 | 10^6 | 1.8e-16 | 5.0e-17 |\n*\n* @param {number} x - input value\n* @returns {number} arctangent (in radians)\n*\n* @example\n* var v = atan( 0.0 );\n* // returns ~0.0\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n*\n* var v = atan( -PI/4.0 );\n* // returns ~-0.666\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n*\n* var v = atan( PI/4.0 );\n* // returns ~0.666\n*\n* @example\n* var v = atan( NaN );\n* // returns NaN\n*/\nfunction atan( x ) {\n\tvar flg;\n\tvar sgn;\n\tvar y;\n\tvar z;\n\tif ( isnan( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( x === PINF ) {\n\t\treturn PIO2;\n\t}\n\tif ( x === NINF ) {\n\t\treturn -PIO2;\n\t}\n\tif ( x < 0.0 ) {\n\t\tsgn = true;\n\t\tx = -x;\n\t}\n\t// Range reduction:\n\tflg = 0;\n\tif ( x > T3P8 ) {\n\t\ty = PIO2;\n\t\tflg = 1;\n\t\tx = -( 1.0/x );\n\t} else if ( x <= 0.66 ) {\n\t\ty = 0.0;\n\t} else {\n\t\ty = PIO4;\n\t\tflg = 2;\n\t\tx = (x-1.0) / (x+1.0);\n\t}\n\tz = x * x;\n\tz = z*polyvalP( z ) / polyvalQ( z );\n\tz = ( x*z ) + x;\n\tif ( flg === 2 ) {\n\t\tz += 0.5 * MOREBITS;\n\t} else if ( flg === 1 ) {\n\t\tz += MOREBITS;\n\t}\n\ty += z;\n\treturn ( sgn ) ? -y : y;\n}\n\n\n// EXPORTS //\n\nexport default atan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -64.85021904942025;\n\t}\n\treturn -64.85021904942025 + (x * (-122.88666844901361 + (x * (-75.00855792314705 + (x * (-16.157537187333652 + (x * -0.8750608600031904))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 194.5506571482614;\n\t}\n\treturn 194.5506571482614 + (x * (485.3903996359137 + (x * (432.88106049129027 + (x * (165.02700983169885 + (x * (24.858464901423062 + (x * 1.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atan from './../../../../base/special/atan';\n\n\n// MAIN //\n\n/**\n* Computes the inverse cotangent of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} inverse cotangent (in radians)\n*\n* @example\n* var v = acot( 2.0 );\n* // returns ~0.4636\n*\n* @example\n* var v = acot( 0.0 );\n* // returns ~1.5708\n*\n* @example\n* var v = acot( 0.5 );\n* // returns ~1.1071\n*\n* @example\n* var v = acot( 1.0 );\n* // returns ~0.7854\n*\n* @example\n* var v = acot( NaN );\n* // returns NaN\n*\n* @example\n* var v = acot( Infinity );\n* // returns 0.0\n*/\nfunction acot( x ) {\n\treturn atan( 1.0 / x );\n}\n\n\n// EXPORTS //\n\nexport default acot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport PI02F from '@stdlib/constants/float32/half-pi';\nimport PI04F from '@stdlib/constants/float32/fourth-pi';\nimport polyp from './poly_p.js';\n\n\n// MAIN //\n\n/**\n* Computes the arctangent of a single-precision floating-point number.\n*\n* ## Method\n*\n* - Range reduction is from four intervals into the interval from zero to tan( pi/8 ). A polynomial approximates the function in this basic interval.\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:-----------|:--------|:---------|:--------|:--------|\n* | IEEE | -10, 10 | 10^5 | 1.9e-7 | 4.1e-8 |\n*\n* @param {number} x - input value\n* @returns {number} arctangent (in radians)\n*\n* @example\n* var v = atanf( 0.0 );\n* // returns 0.0\n*\n* @example\n* import FLOAT32_PI from '@stdlib/constants/float32/pi';\n*\n* var v = atanf( -FLOAT32_PI/4.0 );\n* // returns ~-0.666\n*\n* @example\n* import FLOAT32_PI from '@stdlib/constants/float32/pi';\n*\n* var v = atanf( FLOAT32_PI/4.0 );\n* // returns ~0.666\n*\n* @example\n* var v = atanf( NaN );\n* // returns NaN\n*/\nfunction atanf( x ) {\n\tvar sgn;\n\tvar y;\n\tvar z;\n\n\tif ( isnanf( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tx = float64ToFloat32( x );\n\tif ( x < 0.0 ) {\n\t\tsgn = -1;\n\t\tx = -x;\n\t} else {\n\t\tsgn = 1;\n\t}\n\t// Range reduction...\n\tif ( x > 2.414213562373095 ) { // tan(3*pi/8)\n\t\ty = PI02F;\n\t\tx = -float64ToFloat32( 1.0 / x );\n\t} else if ( x > 0.4142135623730950 ) { // tan(pi/8)\n\t\ty = PI04F;\n\t\tx = float64ToFloat32( float64ToFloat32( x - 1.0 ) / float64ToFloat32( x + 1.0 ) ); // eslint-disable-line max-len\n\t} else {\n\t\ty = 0.0;\n\t}\n\tz = float64ToFloat32( x * x );\n\ty = float64ToFloat32( y + float64ToFloat32( ( float64ToFloat32( polyp( z ) ) * float64ToFloat32( z * x ) ) + x ) ); // eslint-disable-line max-len\n\tif ( sgn < 0 ) {\n\t\ty = -y;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default atanf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.3333294987678528;\n\t}\n\treturn float64ToFloat32(-0.3333294987678528 + float64ToFloat32(x * float64ToFloat32(0.19977711141109467 + float64ToFloat32(x * float64ToFloat32(-0.13877685368061066 + float64ToFloat32(x * 0.08053744584321976)))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/e_atanh.c?view=markup}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// VARIABLES //\n\nvar NEAR_ZERO = 1.0 / (1 << 28); // 2**-28\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arctangent of a double-precision floating-point number.\n*\n* ## Method\n*\n* 1. Reduce \\\\( x \\\\) to positive by \\\\( \\operatorname{atanh}(-x) = -\\operatorname{atanh}(x) \\\\)\n*\n* 2. For \\\\( x \\ge 0.5 \\\\), we calculate\n*\n* ```tex\n* \\operatorname{atanh}(x) = \\frac{1}{2} \\cdot \\log\\left( 1 + \\tfrac{2x}{1-x} \\right) = \\frac{1}{2} \\cdot \\operatorname{log1p}\\left( 2 \\tfrac{x}{1-x} \\right)\n* ```\n*\n* For \\\\( x < 0.5 \\\\), we have\n*\n* ```tex\n* \\operatorname{atanh}(x) = \\frac{1}{2} \\cdot \\operatorname{log1p}\\left( 2x + \\tfrac{2x^2}{1-x} \\right)\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{atanh}(\\mathrm{NaN}) &= \\mathrm{NaN}\\\\\n* \\operatorname{atanh}(1.0) &= \\infty \\\\\n* \\operatorname{atanh}(-1.0) &= -\\infty \\\\\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arctangent\n*\n* @example\n* var v = atanh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = atanh( 0.9 );\n* // returns ~1.472\n*\n* @example\n* var v = atanh( 1.0 );\n* // returns Infinity\n*\n* @example\n* var v = atanh( -1.0 );\n* // returns -Infinity\n*\n* @example\n* var v = atanh( NaN );\n* // returns NaN\n*/\nfunction atanh( x ) {\n\tvar sgn;\n\tvar t;\n\tif ( isnan( x ) || x < -1.0 || x > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn PINF;\n\t}\n\tif ( x === -1.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( x < 0.0 ) {\n\t\tsgn = true;\n\t\tx = -x;\n\t}\n\t// Case: |x| < 2**-28\n\tif ( x < NEAR_ZERO ) {\n\t\treturn ( sgn ) ? -x : x;\n\t}\n\tif ( x < 0.5 ) {\n\t\tt = x + x;\n\t\tt = 0.5 * log1p( t + ( t*x/(1-x) ) );\n\t} else {\n\t\tt = 0.5 * log1p( (x+x) / (1-x) );\n\t}\n\treturn ( sgn ) ? -t : t;\n}\n\n\n// EXPORTS //\n\nexport default atanh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atanh from './../../../../base/special/atanh';\n\n\n// MAIN //\n\n/**\n* Computes the inverse hyperbolic cotangent of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} inverse hyperbolic cotangent\n*\n* @example\n* var v = acoth( 2.0 );\n* // returns ~0.5493\n*\n* @example\n* var v = acoth( 0.0 );\n* // returns NaN\n*\n* @example\n* var v = acoth( 0.5 );\n* // returns NaN\n*\n* @example\n* var v = acoth( 1.0 );\n* // returns Infinity\n*\n* @example\n* var v = acoth( NaN );\n* // returns NaN\n*/\nfunction acoth( x ) {\n\treturn atanh( 1.0/x );\n}\n\n\n// EXPORTS //\n\nexport default acoth;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed cosine.\n*\n* @param {number} x - input value\n* @returns {number} inverse coversed cosine\n*\n* @example\n* var v = acovercos( 0.0 );\n* // returns ~1.5708\n*\n* @example\n* var v = acovercos( -3.141592653589793/2.0 );\n* // returns ~-0.6075\n*\n* @example\n* var v = acovercos( -3.141592653589793/6.0 );\n* // returns ~0.4966\n*\n* @example\n* var v = acovercos( NaN );\n* // returns NaN\n*/\nfunction acovercos( x ) {\n\treturn asin( 1.0 + x );\n}\n\n\n// EXPORTS //\n\nexport default acovercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed sine.\n*\n* @param {number} x - input value\n* @returns {number} inverse coversed sine\n*\n* @example\n* var v = acoversin( 0.0 );\n* // returns ~1.5708\n*\n* @example\n* var v = acoversin( 3.141592653589793/2.0 );\n* // returns ~-0.6075\n*\n* @example\n* var v = acoversin( 3.141592653589793/6.0 );\n* // returns ~0.4966\n*\n* @example\n* var v = acoversin( NaN );\n* // returns NaN\n*/\nfunction acoversin( x ) {\n\treturn asin( 1.0 - x );\n}\n\n\n// EXPORTS //\n\nexport default acoversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the arccosecant of a number.\n*\n* ## Method\n*\n* ```text\n* \\operatorname{acsc}(x) = \\operatorname{asin}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} arccosecant (in radians)\n*\n* @example\n* var v = acsc( 1.0 );\n* // returns ~1.57\n*\n* @example\n* var v = acsc( 3.141592653589793 );\n* // returns ~0.32\n*\n* @example\n* var v = acsc( -3.141592653589793 );\n* // returns ~-0.32\n*\n* @example\n* var v = acsc( NaN );\n* // returns NaN\n*/\nfunction acsc( x ) {\n\treturn asin( 1.0 / x );\n}\n\n\n// EXPORTS //\n\nexport default acsc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// VARIABLES //\n\n// 180.0 / π\nvar CONST_180_DIV_PI = float64ToFloat32( 57.29577951308232 );\n\n\n// MAIN //\n\n/**\n* Converts an angle from radians to degrees (single-precision).\n*\n* @param {number} x - angle in radians\n* @returns {number} angle in degrees\n*\n* @example\n* var d = rad2degf( 3.141592653589793 / 2.0 );\n* // returns 90.0\n*\n* @example\n* var d = rad2degf( -3.141592653589793 / 4.0 );\n* // returns -45.0\n*\n* @example\n* var d = rad2degf( NaN );\n* // returns NaN\n*/\nfunction rad2degf( x ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) * CONST_180_DIV_PI );\n}\n\n\n// EXPORTS //\n\nexport default rad2degf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\nimport sqrtf from './../../../../base/special/sqrtf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport PI02F from '@stdlib/constants/float32/half-pi';\nimport polyp from './poly_p.js';\n\n\n// MAIN //\n\n/**\n* Computes the arcsine of a single-precision floating-point number.\n*\n* ## Method\n*\n* - A polynomial of the form\n*\n* ```tex\n* x + x^3 P(x^2)\n* ```\n*\n* is used for \\\\(\\|x\\|\\\\) in the interval \\\\(\\[0, 0.5\\]\\\\). If \\\\(\\|x\\| > 0.5\\\\), it is transformed by the identity\n*\n* ```tex\n* \\operatorname{asinf}(x) = \\frac{\\pi}{2} - 2 \\operatorname{asinf}( \\sqrt{ (1-x)/2 } )\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:-----------|:-------|:---------|:--------|:--------|\n* | IEEE | -1, 1 | 10^5 | 2.5e-7 | 5.0e-8 |\n*\n* @param {number} x - input value\n* @returns {number} arcsine (in radians)\n*\n* @example\n* var v = asinf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = asinf( 3.14/4.0 );\n* // returns ~0.903\n*\n* @example\n* var v = asinf( -3.14/6.0 );\n* // returns ~-0.551\n*\n* @example\n* var v = asinf( NaN );\n* // returns NaN\n*/\nfunction asinf( x ) {\n\tvar flag;\n\tvar sgn;\n\tvar ax;\n\tvar z;\n\n\tif ( isnanf( x ) ) {\n\t\treturn NaN;\n\t}\n\tx = float64ToFloat32( x );\n\tif ( x > 0.0 ) {\n\t\tsgn = 1;\n\t\tax = x;\n\t} else {\n\t\tsgn = -1;\n\t\tax = -x;\n\t}\n\tif ( ax > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( ax < 1.0e-4 ) {\n\t\treturn x;\n\t}\n\tif ( ax > 0.5 ) {\n\t\tz = float64ToFloat32( 0.5 * float64ToFloat32( 1.0 - ax ) );\n\t\tax = sqrtf( z );\n\t\tflag = 1;\n\t} else {\n\t\tz = float64ToFloat32( ax * ax );\n\t\tflag = 0;\n\t}\n\tz = float64ToFloat32( float64ToFloat32( float64ToFloat32( polyp( z ) * z ) * ax ) + ax ); // eslint-disable-line max-len\n\n\tif ( flag !== 0 ) {\n\t\tz = float64ToFloat32( z + z );\n\t\tz = float64ToFloat32( PI02F - z );\n\t}\n\tif ( sgn < 0 ) {\n\t\tz = -z;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default asinf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666752099990845;\n\t}\n\treturn float64ToFloat32(0.16666752099990845 + float64ToFloat32(x * float64ToFloat32(0.07495300471782684 + float64ToFloat32(x * float64ToFloat32(0.04547002539038658 + float64ToFloat32(x * float64ToFloat32(0.024181311950087547 + float64ToFloat32(x * 0.04216320067644119)))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asinf from './../../../../base/special/asinf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the arccosecant of a single-precision floating-point number.\n*\n* ## Method\n*\n* ```text\n* \\operatorname{acscf}(x) = \\operatorname{asinf}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} arccosecant (in radians)\n*\n* @example\n* var v = acscf( 1.0 );\n* // returns ~1.57\n*\n* @example\n* var v = acscf( 3.141592653589793 );\n* // returns ~0.32\n*\n* @example\n* var v = acscf( -3.141592653589793 );\n* // returns ~-0.32\n*\n* @example\n* var v = acscf( NaN );\n* // returns NaN\n*/\nfunction acscf( x ) {\n\treturn asinf( float64ToFloat32( 1.0 / float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default acscf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/s_asinh.c?view=markup}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isinfinite from './../../../../base/assert/is-infinite';\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport LN2 from '@stdlib/constants/float64/ln-two';\nimport ln from './../../../../base/special/ln';\n\n\n// VARIABLES //\n\nvar NEAR_ZERO = 1.0 / (1 << 28); // 2**-28\nvar HUGE = 1 << 28; // 2**28\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arcsine of a double-precision floating-point number.\n*\n* ## Method\n*\n* Based on\n*\n* ```tex\n* \\operatorname{asinh}(x) = \\operatorname{sgn}(x) \\cdot \\log \\left( |x| + \\sqrt{x^2 + 1} \\right)\n* ```\n*\n* we have\n*\n* ```tex\n* \\operatorname{asinh}(x) = \\begin{cases}\n* x & \\text{ if } 1+x^2 =1, \\\\\n* \\operatorname{sgn}(x) \\cdot \\left( \\log(x) + \\tfrac{\\ln}{2} \\right) & \\text{ if large } |x| \\\\\n* \\operatorname{sgn}(x) \\cdot \\log\\left( 2 |x| + 1 / ( |x|+ \\sqrt{x^2+1} ) \\right) & \\text{ if } |x| > 2 \\\\\n* \\operatorname{sgn}(x) \\cdot \\operatorname{log1p}\\left( |x| + \\tfrac{x^2}{1 + \\sqrt{1+x^2}} \\right) & \\text{otherwise}\n* \\end{cases}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arcsine\n*\n* @example\n* var v = asinh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = asinh( 2.0 );\n* // returns ~1.444\n*\n* @example\n* var v = asinh( -2.0 );\n* // returns ~-1.444\n*\n* @example\n* var v = asinh( NaN );\n* // returns NaN\n*/\nfunction asinh( x ) {\n\tvar sgn;\n\tvar xx;\n\tvar t;\n\tif ( isnan( x ) || isinfinite( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x < 0.0 ) {\n\t\tx = -x;\n\t\tsgn = true;\n\t}\n\t// Case: |x| < 2**-28\n\tif ( x < NEAR_ZERO ) {\n\t\tt = x;\n\t}\n\t// Case: |x| > 2**28\n\telse if ( x > HUGE ) {\n\t\tt = ln( x ) + LN2;\n\t}\n\t// Case: 2**28 > |x| > 2.0\n\telse if ( x > 2.0 ) {\n\t\tt = ln( (2.0*x) + ( 1.0 / (sqrt( (x*x) + 1.0 ) + x) ) );\n\t}\n\t// Case: 2.0 > |x| > 2**-28\n\telse {\n\t\txx = x * x;\n\t\tt = log1p( x + ( xx/(1.0 + sqrt(1.0 + xx)) ) );\n\t}\n\treturn ( sgn ) ? -t : t;\n}\n\n\n// EXPORTS //\n\nexport default asinh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acos from './../../../../base/special/acos';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed cosine.\n*\n* @param {number} x - input value\n* @returns {number} inverse half-value versed cosine\n*\n* @example\n* var v = ahavercos( 0.0 );\n* // returns ~3.1416\n*\n* @example\n* var v = ahavercos( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = ahavercos( 0.5 );\n* // returns ~1.5708\n*\n* @example\n* var v = ahavercos( NaN );\n* // returns NaN\n*/\nfunction ahavercos( x ) {\n\treturn 2.0 * acos( sqrt( x ) );\n}\n\n\n// EXPORTS //\n\nexport default ahavercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asin from './../../../../base/special/asin';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed sine.\n*\n* @param {number} x - input value\n* @returns {number} inverse half-value versed sine\n*\n* @example\n* var v = ahaversin( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = ahaversin( 1.0 );\n* // returns ~3.1416\n*\n* @example\n* var v = ahaversin( 0.5 );\n* // returns ~1.5708\n*\n* @example\n* var v = ahaversin( NaN );\n* // returns NaN\n*/\nfunction ahaversin( x ) {\n\treturn 2.0 * asin( sqrt( x ) );\n}\n\n\n// EXPORTS //\n\nexport default ahaversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse (arc) secant of a number.\n*\n* ## Method\n*\n* ```tex\n* \\operatorname{asec}(x) = \\operatorname{acos}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} inverse (arc) secant\n*\n* @example\n* var v = asec( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = asec( 2.0 );\n* // returns ~1.0472\n*\n* @example\n* var v = asec( NaN );\n* // returns NaN\n*/\nfunction asec( x ) {\n\treturn acos( 1.0 / x );\n}\n\n\n// EXPORTS //\n\nexport default asec;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acosf from './../../../../base/special/acosf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the inverse (arc) secant of a single-precision floating-point number.\n*\n* ## Method\n*\n* ```text\n* \\operatorname{asecf}(x) = \\operatorname{acosf}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} inverse (arc) secant\n*\n* @example\n* var v = asecf( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = asecf( 2.0 );\n* // returns ~1.0472\n*\n* @example\n* var v = asecf( NaN );\n* // returns NaN\n*/\nfunction asecf( x ) {\n\treturn acosf( float64ToFloat32( 1.0 / float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default asecf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport SIGN_MASK from '@stdlib/constants/float64/high-word-sign-mask';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport fromWords from '@stdlib/number/float64/base/from-words';\n\n\n// VARIABLES //\n\n// High/low words workspace:\nvar WORDS = [ 0, 0 ];\n\n\n// MAIN //\n\n/**\n* Returns a double-precision floating-point number with the magnitude of `x` and the sign of `y`.\n*\n* @param {number} x - number from which to derive a magnitude\n* @param {number} y - number from which to derive a sign\n* @returns {number} a double-precision floating-point number\n*\n* @example\n* var z = copysign( -3.14, 10.0 );\n* // returns 3.14\n*\n* @example\n* var z = copysign( 3.14, -1.0 );\n* // returns -3.14\n*\n* @example\n* var z = copysign( 1.0, -0.0 );\n* // returns -1.0\n*\n* @example\n* var z = copysign( -3.14, -0.0 );\n* // returns -3.14\n*\n* @example\n* var z = copysign( -0.0, 1.0 );\n* // returns 0.0\n*/\nfunction copysign( x, y ) {\n\tvar hx;\n\tvar hy;\n\n\t// Split `x` into higher and lower order words:\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thx = WORDS[ 0 ];\n\n\t// Turn off the sign bit of `x`:\n\thx &= ABS_MASK;\n\n\t// Extract the higher order word from `y`:\n\thy = getHighWord( y );\n\n\t// Leave only the sign bit of `y` turned on:\n\thy &= SIGN_MASK;\n\n\t// Copy the sign bit of `y` to `x`:\n\thx |= hy;\n\n\t// Return a new value having the same magnitude as `x`, but with the sign of `y`:\n\treturn fromWords( hx, WORDS[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default copysign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original code, copyright and license are from [Go]{@link https://golang.org/src/math/atan2.go}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (c) 2009 The Go Authors. All rights reserved.\n*\n* Redistribution and use in source and binary forms, with or without\n* modification, are permitted provided that the following conditions are\n* met:\n*\n* * Redistributions of source code must retain the above copyright\n* notice, this list of conditions and the following disclaimer.\n* * Redistributions in binary form must reproduce the above\n* copyright notice, this list of conditions and the following disclaimer\n* in the documentation and/or other materials provided with the\n* distribution.\n* * Neither the name of Google Inc. nor the names of its\n* contributors may be used to endorse or promote products derived from\n* this software without specific prior written permission.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n* \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isinfinite from './../../../../base/assert/is-infinite';\nimport copysign from './../../../../base/special/copysign';\nimport signbit from '@stdlib/number/float64/base/signbit';\nimport isnan from './../../../../base/assert/is-nan';\nimport atan from './../../../../base/special/atan';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// MAIN //\n\n/**\n* Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)`.\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{atan2}(y,\\mathrm{NaN}) &= \\mathrm{NaN}\\\\\n* \\operatorname{atan2}(\\mathrm{NaN},x) &= \\mathrm{NaN}\\\\\n* \\operatorname{atan2}( +0,x \\ge 0 ) &= +0 \\\\\n* \\operatorname{atan2}( -0, x \\ge 0 ) &= -0 \\\\\n* \\operatorname{atan2}( +0,x \\le -0 ) &= +\\Pi \\\\\n* \\operatorname{atan2}( -0, x \\le -0 ) &= -\\Pi \\\\\n* \\operatorname{atan2}(+\\infty, +\\infty) &= +\\tfrac{\\Pi}{4} \\\\\n* \\operatorname{atan2}(-\\infty, +\\infty) &= -\\tfrac{\\Pi}{4} \\\\\n* \\operatorname{atan2}(+\\infty, -\\infty) &= +\\tfrac{3\\Pi}{4} \\\\\n* \\operatorname{atan2}(-\\infty, -\\infty) &= -\\tfrac{3\\Pi}{4} \\\\\n* \\operatorname{atan2}(y, +\\infty) &= 0.0 \\\\\n* \\operatorname{atan2}(y>0, -\\infty) &= +\\Pi \\\\\n* \\operatorname{atan2}(y<0, -\\infty) &= -\\Pi \\\\\n* \\operatorname{atan2}(+\\infty, x ) &= +\\tfrac{\\Pi}{2} \\\\\n* \\operatorname{atan2}(-\\infty, x ) &= -\\tfrac{\\Pi}{2} \\\\\n* \\end{align*}\n* ```\n*\n* @param {number} y - `y` coordinate\n* @param {number} x - `x` coordinate\n* @returns {number} angle (in radians)\n*\n* @example\n* var v = atan2( 2.0, 2.0 ); // => atan(1.0)\n* // returns ~0.785\n*\n* @example\n* var v = atan2( 6.0, 2.0 ); // => atan(3.0)\n* // returns ~1.249\n*\n* @example\n* var v = atan2( -1.0, -1.0 ); // => atan(1.0) - π\n* // returns ~-2.356\n*\n* @example\n* var v = atan2( 3.0, 0.0 ); // => π/2\n* // returns ~1.571\n*\n* @example\n* var v = atan2( -2.0, 0.0 ); // => -π/2\n* // returns ~-1.571\n*\n* @example\n* var v = atan2( 0.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = atan2( 3.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = atan2( NaN, 2.0 );\n* // returns NaN\n*/\nfunction atan2( y, x ) {\n\tvar q;\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isinfinite( x ) ) {\n\t\tif ( x === PINF ) {\n\t\t\tif ( isinfinite( y ) ) {\n\t\t\t\treturn copysign( PI / 4.0, y );\n\t\t\t}\n\t\t\treturn copysign( 0.0, y );\n\t\t}\n\t\t// Case: x is -Infinity\n\t\tif ( isinfinite( y ) ) {\n\t\t\treturn copysign( 3.0*PI/4.0, y );\n\t\t}\n\t\treturn copysign( PI, y );\n\t}\n\tif ( isinfinite( y ) ) {\n\t\treturn copysign( PI / 2.0, y );\n\t}\n\tif ( y === 0.0 ) {\n\t\tif ( x >= 0.0 && !signbit( x ) ) {\n\t\t\treturn copysign( 0.0, y );\n\t\t}\n\t\treturn copysign( PI, y );\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn copysign( PI / 2.0, y );\n\t}\n\tq = atan( y / x );\n\tif ( x < 0.0 ) {\n\t\tif ( q <= 0.0 ) {\n\t\t\treturn q + PI;\n\t\t}\n\t\treturn q - PI;\n\t}\n\treturn q;\n}\n\n\n// EXPORTS //\n\nexport default atan2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed cosine.\n*\n* @param {number} x - input value\n* @returns {number} inverse versed cosine\n*\n* @example\n* var v = avercos( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = avercos( -3.141592653589793/2.0 );\n* // returns ~2.1783\n*\n* @example\n* var v = avercos( -3.141592653589793/6.0 );\n* // returns ~1.0742\n*\n* @example\n* var v = avercos( NaN );\n* // returns NaN\n*/\nfunction avercos( x ) {\n\treturn acos( 1.0 + x );\n}\n\n\n// EXPORTS //\n\nexport default avercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed sine.\n*\n* @param {number} x - input value\n* @returns {number} inverse versed sine\n*\n* @example\n* var v = aversin( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = aversin( 3.141592653589793/2.0 );\n* // returns ~2.1783\n*\n* @example\n* var v = aversin( 3.141592653589793/6.0 );\n* // returns ~1.0742\n*\n* @example\n* var v = aversin( NaN );\n* // returns NaN\n*/\nfunction aversin( x ) {\n\treturn acos( 1.0 - x );\n}\n\n\n// EXPORTS //\n\nexport default aversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from './../../../../base/assert/is-nonnegative-integer';\nimport isnan from './../../../../base/assert/is-nan';\nimport isOdd from './../../../../base/assert/is-odd';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport BERNOULLI from './bernoulli.json';\n\n\n// VARIABLES //\n\nvar MAX_BERNOULLI = 258|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes the nth Bernoulli number.\n*\n* @param {NonNegativeInteger} n - the Bernoulli number to compute\n* @returns {number} Bernoulli number\n*\n* @example\n* var y = bernoulli( 0 );\n* // returns 1.0\n*\n* @example\n* var y = bernoulli( 1 );\n* // returns 0.0\n*\n* @example\n* var y = bernoulli( 2 );\n* // returns ~0.167\n*\n* @example\n* var y = bernoulli( 3 );\n* // returns 0.0\n*\n* @example\n* var y = bernoulli( 4 );\n* // returns ~-0.033\n*\n* @example\n* var y = bernoulli( 5 );\n* // returns 0.0\n*\n* @example\n* var y = bernoulli( 20 );\n* // returns ~-529.124\n*\n* @example\n* var y = bernoulli( 260 );\n* // returns -Infinity\n*\n* @example\n* var y = bernoulli( 262 );\n* // returns Infinity\n*\n* @example\n* var y = bernoulli( NaN );\n* // returns NaN\n*/\nfunction bernoulli( n ) {\n\tif ( isnan( n ) || !isNonNegativeInteger( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isOdd( n ) ) {\n\t\treturn 0.0;\n\t}\n\tif ( n > MAX_BERNOULLI ) {\n\t\treturn ( (n/2)&1 ) ? PINF : NINF;\n\t}\n\treturn BERNOULLI[ n/2 ];\n}\n\n\n// EXPORTS //\n\nexport default bernoulli;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// NOTES //\n\n/*\n* => ldexp: load exponent (see [The Open Group]{@link http://pubs.opengroup.org/onlinepubs/9699919799/functions/ldexp.html} and [cppreference]{@link http://en.cppreference.com/w/c/numeric/math/ldexp}).\n*/\n\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport MAX_EXPONENT from '@stdlib/constants/float64/max-base2-exponent';\nimport MAX_SUBNORMAL_EXPONENT from '@stdlib/constants/float64/max-base2-exponent-subnormal';\nimport MIN_SUBNORMAL_EXPONENT from '@stdlib/constants/float64/min-base2-exponent-subnormal';\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport copysign from './../../../../base/special/copysign';\nimport { assign as normalize } from '@stdlib/number/float64/base/normalize';\nimport floatExp from '@stdlib/number/float64/base/exponent';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport fromWords from '@stdlib/number/float64/base/from-words';\n\n\n// VARIABLES //\n\n// 1/(1<<52) = 1/(2**52) = 1/4503599627370496\nvar TWO52_INV = 2.220446049250313e-16;\n\n// Exponent all 0s: 1 00000000000 11111111111111111111 => 2148532223\nvar CLEAR_EXP_MASK = 0x800fffff>>>0; // asm type annotation\n\n// Normalization workspace:\nvar FRAC = [ 0.0, 0.0 ];\n\n// High/low words workspace:\nvar WORDS = [ 0, 0 ];\n\n\n// MAIN //\n\n/**\n* Multiplies a double-precision floating-point number by an integer power of two.\n*\n* @param {number} frac - fraction\n* @param {integer} exp - exponent\n* @returns {number} double-precision floating-point number\n*\n* @example\n* var x = ldexp( 0.5, 3 ); // => 0.5 * 2^3 = 0.5 * 8\n* // returns 4.0\n*\n* @example\n* var x = ldexp( 4.0, -2 ); // => 4 * 2^(-2) = 4 * (1/4)\n* // returns 1.0\n*\n* @example\n* var x = ldexp( 0.0, 20 );\n* // returns 0.0\n*\n* @example\n* var x = ldexp( -0.0, 39 );\n* // returns -0.0\n*\n* @example\n* var x = ldexp( NaN, -101 );\n* // returns NaN\n*\n* @example\n* var x = ldexp( Infinity, 11 );\n* // returns Infinity\n*\n* @example\n* var x = ldexp( -Infinity, -118 );\n* // returns -Infinity\n*/\nfunction ldexp( frac, exp ) {\n\tvar high;\n\tvar m;\n\tif (\n\t\texp === 0 ||\n\t\tfrac === 0.0 || // handles +-0\n\t\tisnan( frac ) ||\n\t\tisInfinite( frac )\n\t) {\n\t\treturn frac;\n\t}\n\t// Normalize the input fraction:\n\tnormalize( frac, FRAC, 1, 0 );\n\tfrac = FRAC[ 0 ];\n\texp += FRAC[ 1 ];\n\n\t// Extract the exponent from `frac` and add it to `exp`:\n\texp += floatExp( frac );\n\n\t// Check for underflow/overflow...\n\tif ( exp < MIN_SUBNORMAL_EXPONENT ) {\n\t\treturn copysign( 0.0, frac );\n\t}\n\tif ( exp > MAX_EXPONENT ) {\n\t\tif ( frac < 0.0 ) {\n\t\t\treturn NINF;\n\t\t}\n\t\treturn PINF;\n\t}\n\t// Check for a subnormal and scale accordingly to retain precision...\n\tif ( exp <= MAX_SUBNORMAL_EXPONENT ) {\n\t\texp += 52;\n\t\tm = TWO52_INV;\n\t} else {\n\t\tm = 1.0;\n\t}\n\t// Split the fraction into higher and lower order words:\n\ttoWords.assign( frac, WORDS, 1, 0 );\n\thigh = WORDS[ 0 ];\n\n\t// Clear the exponent bits within the higher order word:\n\thigh &= CLEAR_EXP_MASK;\n\n\t// Set the exponent bits to the new exponent:\n\thigh |= ((exp+BIAS) << 20);\n\n\t// Create a new floating-point number:\n\treturn m * fromWords( high, WORDS[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default ldexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_rem_pio2.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n/* eslint-disable array-element-newline */\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\nimport ldexp from './../../../../base/special/ldexp';\nimport zeros from '@stdlib/array/base/zeros';\n\n\n// VARIABLES //\n\n/*\n* Table of constants for `2/π` (`396` hex digits, `476` decimal).\n*\n* Integer array which contains the (`24*i`)-th to (`24*i+23`)-th bit of `2/π` after binary point. The corresponding floating value is\n*\n* ```tex\n* \\operatorname{ipio2}[i] \\cdot 2^{-24(i+1)}\n* ```\n*\n* This table must have at least `(e0-3)/24 + jk` terms. For quad precision (`e0 <= 16360`, `jk = 6`), this is `686`.\n*/\nvar IPIO2 = [\n\t0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62,\n\t0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A,\n\t0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129,\n\t0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41,\n\t0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8,\n\t0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF,\n\t0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,\n\t0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08,\n\t0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3,\n\t0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880,\n\t0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B\n];\n\n// Double precision array, obtained by cutting `π/2` into `24` bits chunks...\nvar PIO2 = [\n\t1.57079625129699707031e+00, // 0x3FF921FB, 0x40000000\n\t7.54978941586159635335e-08, // 0x3E74442D, 0x00000000\n\t5.39030252995776476554e-15, // 0x3CF84698, 0x80000000\n\t3.28200341580791294123e-22, // 0x3B78CC51, 0x60000000\n\t1.27065575308067607349e-29, // 0x39F01B83, 0x80000000\n\t1.22933308981111328932e-36, // 0x387A2520, 0x40000000\n\t2.73370053816464559624e-44, // 0x36E38222, 0x80000000\n\t2.16741683877804819444e-51 // 0x3569F31D, 0x00000000\n];\nvar TWO24 = 1.67772160000000000000e+07; // 0x41700000, 0x00000000\nvar TWON24 = 5.96046447753906250000e-08; // 0x3E700000, 0x00000000\n\n// Arrays for storing temporary values (note that, in C, this is not thread safe):\nvar F = zeros( 20 );\nvar Q = zeros( 20 );\nvar FQ = zeros( 20 );\nvar IQ = zeros( 20 );\n\n\n// FUNCTIONS //\n\n/**\n* Performs the computation for `kernelRempio2()`.\n*\n* @private\n* @param {PositiveNumber} x - input value\n* @param {(Array|TypedArray|Object)} y - output object for storing double precision numbers\n* @param {integer} jz - number of terms of `ipio2[]` used\n* @param {Array} q - array with integral values, representing the 24-bits chunk of the product of `x` and `2/π`\n* @param {integer} q0 - the corresponding exponent of `q[0]` (the exponent for `q[i]` would be `q0-24*i`)\n* @param {integer} jk - `jk+1` is the initial number of terms of `IPIO2[]` needed in the computation\n* @param {integer} jv - index for pointing to the suitable `ipio2[]` for the computation\n* @param {integer} jx - `nx - 1`\n* @param {Array} f - `IPIO2[]` in floating point\n* @returns {number} last three binary digits of `N`\n*/\nfunction compute( x, y, jz, q, q0, jk, jv, jx, f ) {\n\tvar carry;\n\tvar fw;\n\tvar ih;\n\tvar jp;\n\tvar i;\n\tvar k;\n\tvar n;\n\tvar j;\n\tvar z;\n\n\t// `jp+1` is the number of terms in `PIO2[]` needed:\n\tjp = jk;\n\n\t// Distill `q[]` into `IQ[]` in reverse order...\n\tz = q[ jz ];\n\tj = jz;\n\tfor ( i = 0; j > 0; i++ ) {\n\t\tfw = ( TWON24 * z )|0;\n\t\tIQ[ i ] = ( z - (TWO24*fw) )|0;\n\t\tz = q[ j-1 ] + fw;\n\t\tj -= 1;\n\t}\n\t// Compute `n`...\n\tz = ldexp( z, q0 );\n\tz -= 8.0 * floor( z*0.125 ); // Trim off integer >= 8\n\tn = z|0;\n\tz -= n;\n\tih = 0;\n\tif ( q0 > 0 ) {\n\t\t// Need `IQ[jz-1]` to determine `n`...\n\t\ti = ( IQ[ jz-1 ] >> (24-q0) );\n\t\tn += i;\n\t\tIQ[ jz-1 ] -= ( i << (24-q0) );\n\t\tih = ( IQ[ jz-1 ] >> (23-q0) );\n\t}\n\telse if ( q0 === 0 ) {\n\t\tih = ( IQ[ jz-1 ] >> 23 );\n\t}\n\telse if ( z >= 0.5 ) {\n\t\tih = 2;\n\t}\n\t// Case: q > 0.5\n\tif ( ih > 0 ) {\n\t\tn += 1;\n\t\tcarry = 0;\n\n\t\t// Compute `1-q`:\n\t\tfor ( i = 0; i < jz; i++ ) {\n\t\t\tj = IQ[ i ];\n\t\t\tif ( carry === 0 ) {\n\t\t\t\tif ( j !== 0 ) {\n\t\t\t\t\tcarry = 1;\n\t\t\t\t\tIQ[ i ] = 0x1000000 - j;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tIQ[ i ] = 0xffffff - j;\n\t\t\t}\n\t\t}\n\t\tif ( q0 > 0 ) {\n\t\t\t// Rare case: chance is 1 in 12...\n\t\t\tswitch ( q0 ) { // eslint-disable-line default-case\n\t\t\tcase 1:\n\t\t\t\tIQ[ jz-1 ] &= 0x7fffff;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tIQ[ jz-1 ] &= 0x3fffff;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( ih === 2 ) {\n\t\t\tz = 1.0 - z;\n\t\t\tif ( carry !== 0 ) {\n\t\t\t\tz -= ldexp( 1.0, q0 );\n\t\t\t}\n\t\t}\n\t}\n\t// Check if re-computation is needed...\n\tif ( z === 0.0 ) {\n\t\tj = 0;\n\t\tfor ( i = jz-1; i >= jk; i-- ) {\n\t\t\tj |= IQ[ i ];\n\t\t}\n\t\tif ( j === 0 ) {\n\t\t\t// Need re-computation...\n\t\t\tfor ( k = 1; IQ[ jk-k ] === 0; k++ ) {\n\t\t\t\t// `k` is the number of terms needed...\n\t\t\t}\n\t\t\tfor ( i = jz+1; i <= jz+k; i++ ) {\n\t\t\t\t// Add `q[jz+1]` to `q[jz+k]`...\n\t\t\t\tf[ jx+i ] = IPIO2[ jv+i ];\n\t\t\t\tfw = 0.0;\n\t\t\t\tfor ( j = 0; j <= jx; j++ ) {\n\t\t\t\t\tfw += x[ j ] * f[ jx + (i-j) ];\n\t\t\t\t}\n\t\t\t\tq[ i ] = fw;\n\t\t\t}\n\t\t\tjz += k;\n\t\t\treturn compute( x, y, jz, q, q0, jk, jv, jx, f );\n\t\t}\n\t\t// Chop off zero terms...\n\t\tjz -= 1;\n\t\tq0 -= 24;\n\t\twhile ( IQ[ jz ] === 0 ) {\n\t\t\tjz -= 1;\n\t\t\tq0 -= 24;\n\t\t}\n\t} else {\n\t\t// Break `z` into 24-bit if necessary...\n\t\tz = ldexp( z, -q0 );\n\t\tif ( z >= TWO24 ) {\n\t\t\tfw = (TWON24*z)|0;\n\t\t\tIQ[ jz ] = ( z - (TWO24*fw) )|0;\n\t\t\tjz += 1;\n\t\t\tq0 += 24;\n\t\t\tIQ[ jz ] = fw;\n\t\t} else {\n\t\t\tIQ[ jz ] = z|0;\n\t\t}\n\t}\n\t// Convert integer \"bit\" chunk to floating-point value...\n\tfw = ldexp( 1.0, q0 );\n\tfor ( i = jz; i >= 0; i-- ) {\n\t\tq[ i ] = fw * IQ[i];\n\t\tfw *= TWON24;\n\t}\n\t// Compute `PIO2[0,...,jp]*q[jz,...,0]`...\n\tfor ( i = jz; i >= 0; i-- ) {\n\t\tfw = 0.0;\n\t\tfor ( k = 0; k <= jp && k <= jz-i; k++ ) {\n\t\t\tfw += PIO2[ k ] * q[ i+k ];\n\t\t}\n\t\tFQ[ jz-i ] = fw;\n\t}\n\t// Compress `FQ[]` into `y[]`...\n\tfw = 0.0;\n\tfor ( i = jz; i >= 0; i-- ) {\n\t\tfw += FQ[ i ];\n\t}\n\tif ( ih === 0 ) {\n\t\ty[ 0 ] = fw;\n\t} else {\n\t\ty[ 0 ] = -fw;\n\t}\n\tfw = FQ[ 0 ] - fw;\n\tfor ( i = 1; i <= jz; i++ ) {\n\t\tfw += FQ[i];\n\t}\n\tif ( ih === 0 ) {\n\t\ty[ 1 ] = fw;\n\t} else {\n\t\ty[ 1 ] = -fw;\n\t}\n\treturn ( n & 7 );\n}\n\n\n// MAIN //\n\n/**\n* Returns the last three binary digits of `N` with `y = x - Nπ/2` so that `|y| < π/2`.\n*\n* ## Method\n*\n* - The method is to compute the integer (mod 8) and fraction parts of (2/π) * x without doing the full multiplication. In general, we skip the part of the product that are known to be a huge integer (more accurately, = 0 mod 8 ). Thus the number of operations are independent of the exponent of the input.\n*\n* - (2/π) is represented by an array of 24-bit integers in `ipio2[]`.\n*\n* - Input parameters:\n*\n* - `x[]` The input value (must be positive) is broken into `nx` pieces of 24-bit integers in double precision format. `x[i]` will be the i-th 24 bit of x. The scaled exponent of `x[0]` is given in input parameter `e0` (i.e., `x[0]*2^e0` match x's up to 24 bits).\n*\n* Example of breaking a double positive `z` into `x[0]+x[1]+x[2]`:\n*\n* ```tex\n* e0 = \\mathrm{ilogb}(z) - 23\n* z = \\mathrm{scalbn}(z, -e0)\n* ```\n*\n* for `i = 0,1,2`\n*\n* ```tex\n* x[i] = \\lfloor z \\rfloor\n* z = (z - x[i]) \\times 2^{24}\n* ```\n*\n* - `y[]` output result in an array of double precision numbers.\n*\n* The dimension of `y[]` is:\n* 24-bit precision 1\n* 53-bit precision 2\n* 64-bit precision 2\n* 113-bit precision 3\n*\n* The actual value is the sum of them. Thus, for 113-bit precision, one may have to do something like:\n*\n* ```tex\n* \\mathrm{long\\ double} \\: t, w, r_{\\text{head}}, r_{\\text{tail}}; \\\\\n* t &= (\\mathrm{long\\ double}) y[2] + (\\mathrm{long\\ double}) y[1]; \\\\\n* w &= (\\mathrm{long\\ double}) y[0]; \\\\\n* r_{\\text{head}} &= t + w; \\\\\n* r_{\\text{tail}} &= w - (r_{\\text{head}} - t);\n* ```\n*\n* - `e0` The exponent of `x[0]`. Must be <= 16360 or you need to expand the `ipio2` table.\n*\n* - `nx` dimension of `x[]`\n*\n* - `prec` an integer indicating the precision:\n* 0 24 bits (single)\n* 1 53 bits (double)\n* 2 64 bits (extended)\n* 3 113 bits (quad)\n*\n* - External function:\n*\n* - double `scalbn()`, `floor()`;\n*\n* - Here is the description of some local variables:\n*\n* - `jk` `jk+1` is the initial number of terms of `ipio2[]` needed in the computation. The minimum and recommended value for `jk` is 3,4,4,6 for single, double, extended, and quad. `jk+1` must be 2 larger than you might expect so that our recomputation test works. (Up to 24 bits in the integer part (the 24 bits of it that we compute) and 23 bits in the fraction part may be lost to cancellation before we recompute.)\n*\n* - `jz` local integer variable indicating the number of terms of `ipio2[]` used.\n*\n* - `jx` `nx - 1`\n*\n* - `jv` index for pointing to the suitable `ipio2[]` for the computation. In general, we want\n*\n* ```tex\n* \\frac{{2^{e0} \\cdot x[0] \\cdot \\mathrm{ipio2}[jv-1] \\cdot 2^{-24jv}}}{{8}}\n* ```\n*\n* to be an integer. Thus\n*\n* ```tex\n* e0 - 3 - 24 \\cdot jv \\geq 0 \\quad \\text{or} \\quad \\frac{{e0 - 3}}{{24}} \\geq jv\n* ```\n*\n* Hence\n*\n* ```tex\n* jv = \\max(0, \\frac{{e0 - 3}}{{24}})\n* ```\n*\n* - `jp` `jp+1` is the number of terms in `PIo2[]` needed, `jp = jk`.\n*\n* - `q[]` double array with integral value, representing the 24-bits chunk of the product of `x` and `2/π`.\n*\n* - `q0` the corresponding exponent of `q[0]`. Note that the exponent for `q[i]` would be `q0-24*i`.\n*\n* - `PIo2[]` double precision array, obtained by cutting `π/2` into 24 bits chunks.\n*\n* - `f[]` `ipso2[]` in floating point\n*\n* - `iq[]` integer array by breaking up `q[]` in 24-bits chunk.\n*\n* - `fq[]` final product of `x*(2/π)` in `fq[0],..,fq[jk]`\n*\n* - `ih` integer. If >0 it indicates `q[]` is >= 0.5, hence it also indicates the _sign_ of the result.\n*\n* - Constants:\n*\n* - The hexadecimal values are the intended ones for the following constants. The decimal values may be used, provided that the compiler will convert from decimal to binary accurately enough to produce the hexadecimal values shown.\n*\n* @private\n* @param {PositiveNumber} x - input value\n* @param {(Array|TypedArray|Object)} y - remainder elements\n* @param {PositiveInteger} e0 - the exponent of `x[0]` (must be <= 16360)\n* @param {PositiveInteger} nx - dimension of `x[]`\n* @returns {number} last three binary digits of `N`\n*/\nfunction kernelRempio2( x, y, e0, nx ) {\n\tvar fw;\n\tvar jk;\n\tvar jv;\n\tvar jx;\n\tvar jz;\n\tvar q0;\n\tvar i;\n\tvar j;\n\tvar m;\n\n\t// Initialize `jk` for double-precision floating-point numbers:\n\tjk = 4;\n\n\t// Determine `jx`, `jv`, `q0` (note that `q0 < 3`):\n\tjx = nx - 1;\n\tjv = ( (e0 - 3) / 24 )|0;\n\tif ( jv < 0 ) {\n\t\tjv = 0;\n\t}\n\tq0 = e0 - (24 * (jv + 1));\n\n\t// Set up `F[0]` to `F[jx+jk]` where `F[jx+jk] = IPIO2[jv+jk]`:\n\tj = jv - jx;\n\tm = jx + jk;\n\tfor ( i = 0; i <= m; i++ ) {\n\t\tif ( j < 0 ) {\n\t\t\tF[ i ] = 0.0;\n\t\t} else {\n\t\t\tF[ i ] = IPIO2[ j ];\n\t\t}\n\t\tj += 1;\n\t}\n\t// Compute `Q[0],Q[1],...,Q[jk]`:\n\tfor ( i = 0; i <= jk; i++ ) {\n\t\tfw = 0.0;\n\t\tfor ( j = 0; j <= jx; j++ ) {\n\t\t\tfw += x[ j ] * F[ jx + (i-j) ];\n\t\t}\n\t\tQ[ i ] = fw;\n\t}\n\tjz = jk;\n\treturn compute( x, y, jz, Q, q0, jk, jv, jx, F );\n}\n\n\n// EXPORTS //\n\nexport default kernelRempio2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest integer.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = round( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = round( -4.5 );\n* // returns -4.0\n*\n* @example\n* var v = round( -4.6 );\n* // returns -5.0\n*\n* @example\n* var v = round( 9.99999 );\n* // returns 10.0\n*\n* @example\n* var v = round( 9.5 );\n* // returns 10.0\n*\n* @example\n* var v = round( 9.2 );\n* // returns 9.0\n*\n* @example\n* var v = round( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = round( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = round( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = round( -Infinity );\n* // returns -Infinity\n*\n* @example\n* var v = round( NaN );\n* // returns NaN\n*/\nvar round = Math.round; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default round;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_rem_pio2.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport round from './../../../../base/special/round';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\n\n\n// VARIABLES //\n\n// 53 bits of 2/π:\nvar INVPIO2 = 6.36619772367581382433e-01; // 0x3FE45F30, 0x6DC9C883\n\n// First 33 bits of π/2:\nvar PIO2_1 = 1.57079632673412561417e+00; // 0x3FF921FB, 0x54400000\n\n// PIO2_1T = π/2 - PIO2_1:\nvar PIO2_1T = 6.07710050650619224932e-11; // 0x3DD0B461, 0x1A626331\n\n// Another 33 bits of π/2:\nvar PIO2_2 = 6.07710050630396597660e-11; // 0x3DD0B461, 0x1A600000\n\n// PIO2_2T = π/2 - ( PIO2_1 + PIO2_2 ):\nvar PIO2_2T = 2.02226624879595063154e-21; // 0x3BA3198A, 0x2E037073\n\n// Another 33 bits of π/2:\nvar PIO2_3 = 2.02226624871116645580e-21; // 0x3BA3198A, 0x2E000000\n\n// PIO2_3T = π/2 - ( PIO2_1 + PIO2_2 + PIO2_3 ):\nvar PIO2_3T = 8.47842766036889956997e-32; // 0x397B839A, 0x252049C1\n\n// Exponent mask (2047 => 0x7ff):\nvar EXPONENT_MASK = 0x7ff|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes `x - nπ/2 = r` for medium-sized inputs.\n*\n* @private\n* @param {number} x - input value\n* @param {uint32} ix - high word of `x`\n* @param {(Array|TypedArray|Object)} y - remainder elements\n* @returns {integer} factor of `π/2`\n*/\nfunction rempio2Medium( x, ix, y ) {\n\tvar high;\n\tvar n;\n\tvar t;\n\tvar r;\n\tvar w;\n\tvar i;\n\tvar j;\n\n\tn = round( x * INVPIO2 );\n\tr = x - ( n * PIO2_1 );\n\tw = n * PIO2_1T;\n\n\t// First rounding (good to 85 bits)...\n\tj = (ix >> 20)|0; // asm type annotation\n\ty[ 0 ] = r - w;\n\thigh = getHighWord( y[0] );\n\ti = j - ( (high >> 20) & EXPONENT_MASK );\n\n\t// Check if a second iteration is needed (good to 118 bits)...\n\tif ( i > 16 ) {\n\t\tt = r;\n\t\tw = n * PIO2_2;\n\t\tr = t - w;\n\t\tw = (n * PIO2_2T) - ((t-r) - w);\n\t\ty[ 0 ] = r - w;\n\t\thigh = getHighWord( y[0] );\n\t\ti = j - ( (high >> 20) & EXPONENT_MASK );\n\n\t\t// Check if a third iteration is needed (151 bits accumulated)...\n\t\tif ( i > 49 ) {\n\t\t\tt = r;\n\t\t\tw = n * PIO2_3;\n\t\t\tr = t - w;\n\t\t\tw = (n * PIO2_3T) - ((t-r) - w);\n\t\t\ty[ 0 ] = r - w;\n\t\t}\n\t}\n\ty[ 1 ] = (r - y[0]) - w;\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default rempio2Medium;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/e_rem_pio2.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n*\n* Optimized by Bruce D. Evans.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\nimport SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport getLowWord from '@stdlib/number/float64/base/get-low-word';\nimport fromWords from '@stdlib/number/float64/base/from-words';\nimport rempio2Kernel from './kernel_rempio2.js';\nimport rempio2Medium from './rempio2_medium.js';\n\n\n// VARIABLES //\n\nvar ZERO = 0.00000000000000000000e+00; // 0x00000000, 0x00000000\nvar TWO24 = 1.67772160000000000000e+07; // 0x41700000, 0x00000000\n\n// 33 bits of π/2:\nvar PIO2_1 = 1.57079632673412561417e+00; // 0x3FF921FB, 0x54400000\n\n// PIO2_1T = π/2 - PIO2_1:\nvar PIO2_1T = 6.07710050650619224932e-11; // 0x3DD0B461, 0x1A626331\nvar TWO_PIO2_1T = 2.0 * PIO2_1T;\nvar THREE_PIO2_1T = 3.0 * PIO2_1T;\nvar FOUR_PIO2_1T = 4.0 * PIO2_1T;\n\n// High word significand for π and π/2: 0x921fb = 598523 => 00000000000010010010000111111011\nvar PI_HIGH_WORD_SIGNIFICAND = 0x921fb|0; // asm type annotation\n\n// High word for π/4: 0x3fe921fb = 1072243195 => 00111111111010010010000111111011\nvar PIO4_HIGH_WORD = 0x3fe921fb|0; // asm type annotation\n\n// High word for 3π/4: 0x4002d97c = 1073928572 => 01000000000000101101100101111100\nvar THREE_PIO4_HIGH_WORD = 0x4002d97c|0; // asm type annotation\n\n// High word for 5π/4: 0x400f6a7a = 1074752122 => 01000000000011110110101001111010\nvar FIVE_PIO4_HIGH_WORD = 0x400f6a7a|0; // asm type annotation\n\n// High word for 6π/4: 0x4012d97c = 1074977148 => 01000000000100101101100101111100\nvar THREE_PIO2_HIGH_WORD = 0x4012d97c|0; // asm type annotation\n\n// High word for 7π/4: 0x4015fdbc = 1075183036 => 01000000000101011111110110111100\nvar SEVEN_PIO4_HIGH_WORD = 0x4015fdbc|0; // asm type annotation\n\n// High word for 8π/4: 0x401921fb = 1075388923 => 01000000000110010010000111111011\nvar TWO_PI_HIGH_WORD = 0x401921fb|0; // asm type annotation\n\n// High word for 9π/4: 0x401c463b = 1075594811 => 01000000000111000100011000111011\nvar NINE_PIO4_HIGH_WORD = 0x401c463b|0; // asm type annotation\n\n// 2^20*π/2 = 1647099.3291652855 => 0100000100111001001000011111101101010100010001000010110100011000 => high word => 0x413921fb = 1094263291 => 01000001001110010010000111111011\nvar MEDIUM = 0x413921fb|0; // asm type annotation\n\n// Arrays for storing temporary values:\nvar TX = [ 0.0, 0.0, 0.0 ];\nvar TY = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes `x - nπ/2 = r`.\n*\n* ## Notes\n*\n* - Returns `n` and stores the remainder `r` as two numbers `y[0]` and `y[1]`, such that `y[0]+y[1] = r`.\n*\n* @param {number} x - input value\n* @param {(Array|TypedArray|Object)} y - remainder elements\n* @returns {integer} factor of `π/2`\n*\n* @example\n* var y = [ 0.0, 0.0 ];\n* var n = rempio2( 128.0, y );\n* // returns 81\n*\n* var y1 = y[ 0 ];\n* // returns ~0.765\n*\n* var y2 = y[ 1 ];\n* // returns ~3.618e-17\n*\n* @example\n* var y = [ 0.0, 0.0 ];\n* var n = rempio2( NaN, y );\n* // returns 0\n*\n* var y1 = y[ 0 ];\n* // returns NaN\n*\n* var y2 = y[ 1 ];\n* // returns NaN\n*/\nfunction rempio2( x, y ) {\n\tvar low;\n\tvar e0;\n\tvar hx;\n\tvar ix;\n\tvar nx;\n\tvar i;\n\tvar n;\n\tvar z;\n\n\thx = getHighWord( x );\n\tix = (hx & ABS_MASK)|0; // asm type annotation\n\n\t// Case: |x| ~<= π/4 (no need for reduction)\n\tif ( ix <= PIO4_HIGH_WORD ) {\n\t\ty[ 0 ] = x;\n\t\ty[ 1 ] = 0.0;\n\t\treturn 0;\n\t}\n\t// Case: |x| ~<= 5π/4\n\tif ( ix <= FIVE_PIO4_HIGH_WORD ) {\n\t\t// Case: |x| ~= π/2 or π\n\t\tif ( (ix & SIGNIFICAND_MASK) === PI_HIGH_WORD_SIGNIFICAND ) {\n\t\t\t// Cancellation => use medium case\n\t\t\treturn rempio2Medium( x, ix, y );\n\t\t}\n\t\t// Case: |x| ~<= 3π/4\n\t\tif ( ix <= THREE_PIO4_HIGH_WORD ) {\n\t\t\tif ( x > 0.0 ) {\n\t\t\t\tz = x - PIO2_1;\n\t\t\t\ty[ 0 ] = z - PIO2_1T;\n\t\t\t\ty[ 1 ] = (z - y[0]) - PIO2_1T;\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tz = x + PIO2_1;\n\t\t\ty[ 0 ] = z + PIO2_1T;\n\t\t\ty[ 1 ] = (z - y[0]) + PIO2_1T;\n\t\t\treturn -1;\n\t\t}\n\t\tif ( x > 0.0 ) {\n\t\t\tz = x - ( 2.0*PIO2_1 );\n\t\t\ty[ 0 ] = z - TWO_PIO2_1T;\n\t\t\ty[ 1 ] = (z - y[0]) - TWO_PIO2_1T;\n\t\t\treturn 2;\n\t\t}\n\t\tz = x + ( 2.0*PIO2_1 );\n\t\ty[ 0 ] = z + TWO_PIO2_1T;\n\t\ty[ 1 ] = (z - y[0]) + TWO_PIO2_1T;\n\t\treturn -2;\n\t}\n\t// Case: |x| ~<= 9π/4\n\tif ( ix <= NINE_PIO4_HIGH_WORD ) {\n\t\t// Case: |x| ~<= 7π/4\n\t\tif ( ix <= SEVEN_PIO4_HIGH_WORD ) {\n\t\t\t// Case: |x| ~= 3π/2\n\t\t\tif ( ix === THREE_PIO2_HIGH_WORD ) {\n\t\t\t\treturn rempio2Medium( x, ix, y );\n\t\t\t}\n\t\t\tif ( x > 0.0 ) {\n\t\t\t\tz = x - ( 3.0*PIO2_1 );\n\t\t\t\ty[ 0 ] = z - THREE_PIO2_1T;\n\t\t\t\ty[ 1 ] = (z - y[0]) - THREE_PIO2_1T;\n\t\t\t\treturn 3;\n\t\t\t}\n\t\t\tz = x + ( 3.0*PIO2_1 );\n\t\t\ty[ 0 ] = z + THREE_PIO2_1T;\n\t\t\ty[ 1 ] = (z - y[0]) + THREE_PIO2_1T;\n\t\t\treturn -3;\n\t\t}\n\t\t// Case: |x| ~= 4π/2\n\t\tif ( ix === TWO_PI_HIGH_WORD ) {\n\t\t\treturn rempio2Medium( x, ix, y );\n\t\t}\n\t\tif ( x > 0.0 ) {\n\t\t\tz = x - ( 4.0*PIO2_1 );\n\t\t\ty[ 0 ] = z - FOUR_PIO2_1T;\n\t\t\ty[ 1 ] = (z - y[0]) - FOUR_PIO2_1T;\n\t\t\treturn 4;\n\t\t}\n\t\tz = x + ( 4.0*PIO2_1 );\n\t\ty[ 0 ] = z + FOUR_PIO2_1T;\n\t\ty[ 1 ] = (z - y[0]) + FOUR_PIO2_1T;\n\t\treturn -4;\n\t}\n\t// Case: |x| ~< 2^20*π/2 (medium size)\n\tif ( ix < MEDIUM ) {\n\t\treturn rempio2Medium( x, ix, y );\n\t}\n\t// Case: x is NaN or infinity\n\tif ( ix >= EXPONENT_MASK ) {\n\t\ty[ 0 ] = NaN;\n\t\ty[ 1 ] = NaN;\n\t\treturn 0.0;\n\t}\n\t// Set z = scalbn(|x|, ilogb(x)-23)...\n\tlow = getLowWord( x );\n\te0 = (ix >> 20) - 1046; // `e0 = ilogb(z) - 23` => unbiased exponent minus 23\n\tz = fromWords( ix - ((e0 << 20)|0), low );\n\tfor ( i = 0; i < 2; i++ ) {\n\t\tTX[ i ] = z|0;\n\t\tz = (z - TX[i]) * TWO24;\n\t}\n\tTX[ 2 ] = z;\n\tnx = 3;\n\twhile ( TX[ nx-1 ] === ZERO ) {\n\t\t// Skip zero term...\n\t\tnx -= 1;\n\t}\n\tn = rempio2Kernel( TX, TY, e0, nx, 1 );\n\tif ( x < 0.0 ) {\n\t\ty[ 0 ] = -TY[ 0 ];\n\t\ty[ 1 ] = -TY[ 1 ];\n\t\treturn -n;\n\t}\n\ty[ 0 ] = TY[ 0 ];\n\ty[ 1 ] = TY[ 1 ];\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default rempio2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of FreeBSD [k_sin.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_sin.c} and [k_cos.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_cos.c}. The implementation follows the original sine and cosine kernels, but has been modified for JavaScript and combined into a single function.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar S1 = -1.66666666666666324348e-01; // 0xBFC55555, 0x55555549\nvar S2 = 8.33333333332248946124e-03; // 0x3F811111, 0x1110F8A6\nvar S3 = -1.98412698298579493134e-04; // 0xBF2A01A0, 0x19C161D5\nvar S4 = 2.75573137070700676789e-06; // 0x3EC71DE3, 0x57B1FE7D\nvar S5 = -2.50507602534068634195e-08; // 0xBE5AE5E6, 0x8A2B9CEB\nvar S6 = 1.58969099521155010221e-10; // 0x3DE5D93A, 0x5ACFD57C\n\nvar C1 = 4.16666666666666019037e-02; // 0x3FA55555, 0x5555554C\nvar C2 = -1.38888888888741095749e-03; // 0xBF56C16C, 0x16C15177\nvar C3 = 2.48015872894767294178e-05; // 0x3EFA01A0, 0x19CB1590\nvar C4 = -2.75573143513906633035e-07; // 0xBE927E4F, 0x809C52AD\nvar C5 = 2.08757232129817482790e-09; // 0x3E21EE9E, 0xBDB4B1C4\nvar C6 = -1.13596475577881948265e-11; // 0xBDA8FAE9, 0xBE8838D4\n\n\n// MAIN //\n\n/**\n* Computes the sine and cosine on \\\\( \\approx \\[-\\pi/4, \\pi/4\\] \\\\) (except for \\\\(-0\\\\)), where \\\\( \\pi/4 \\approx 0.7854 \\\\).\n*\n* @private\n* @param {number} x - input value (in radians, assumed to be bounded by `~π/4` in magnitude)\n* @param {number} y - tail of `x`\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} sine and cosine\n*/\nfunction kernelSincos( x, y, out, stride, offset ) {\n\tvar hz;\n\tvar r;\n\tvar v;\n\tvar w;\n\tvar z;\n\n\tz = x * x;\n\tw = z * z;\n\tr = S2 + (z * (S3 + (z*S4))) + (z * w * (S5 + (z*S6)));\n\tv = z * x;\n\tif ( y === 0.0 ) {\n\t\tout[ offset ] = x + (v * (S1 + (z*r)));\n\t} else {\n\t\tout[ offset ] = x - (((z*((0.5*y) - (v*r))) - y) - (v*S1));\n\t}\n\tr = z * (C1 + (z * (C2 + (z*C3))));\n\tr += w * w * (C4 + (z * (C5 + (z*C6))));\n\thz = 0.5 * z;\n\tw = 1.0 - hz;\n\tout[ offset + stride ] = w + ( ((1.0-w) - hz) + ((z*r) - (x*y)) );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default kernelSincos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of FreeBSD [k_sin.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_sin.c} and [k_cos.c]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_cos.c}. The implementation follows the original sine and cosine kernels, but has been modified for JavaScript and combined into a single function.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport rempio2 from './../../../../base/special/rempio2';\nimport kernelSincos from './kernel_sincos.js';\n\n\n// VARIABLES //\n\n// High word for PI/4: 0x3fe921fb = 1072243195 => 00111111111010010010000111111011\nvar PIO4_HIGH_WORD = 0x3fe921fb|0; // asm type annotation\n\n// The smaller of the two cutoffs for the sine and cosine kernels: 2^-27 = 0x3e400000 => 00111110010000000000000000000000\nvar SMALL_HIGH_WORD = 0x3e400000|0; // asm type annotation\n\n// Array for storing remainder elements:\nvar Y = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Simultaneously computes the sine and cosine of a number and assigns results to a provided output array.\n*\n* ## Method\n*\n* - Let \\\\(S\\\\), \\\\(C\\\\), and \\\\(T\\\\) denote the \\\\(\\sin\\\\), \\\\(\\cos\\\\) and \\\\(\\tan\\\\), respectively, on \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\).\n*\n* - Reduce the argument \\\\(x\\\\) to \\\\(y1+y2 = x-k\\pi/2\\\\) in \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\), and let \\\\(n = k \\mod 4\\\\).\n*\n* - We have\n*\n* | n | sin(x) | cos(x) | tan(x) |\n* | - | ------ | ------ | ------ |\n* | 0 | S | C | T |\n* | 1 | C | -S | -1/T |\n* | 2 | -S | -C | T |\n* | 3 | -C | S | -1/T |\n*\n* @private\n* @param {number} x - input value (in radians)\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var v = sincos( 0.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.0, ~1.0 ]\n*\n* @example\n* var v = sincos( 3.141592653589793/2.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~1.0, ~0.0 ]\n*\n* @example\n* var v = sincos( -3.141592653589793/6.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~-0.5, ~0.866 ]\n*\n* @example\n* var v = sincos( NaN, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ NaN, NaN ]\n*/\nfunction sincos( x, out, stride, offset ) {\n\tvar tmp;\n\tvar ix;\n\tvar n;\n\n\tix = getHighWord( x );\n\n\t// Case: |x| ~< π/4\n\tix &= ABS_MASK;\n\tif ( ix <= PIO4_HIGH_WORD ) {\n\t\t// Case: |x| ~< 2^-26\n\t\tif ( ix < SMALL_HIGH_WORD ) {\n\t\t\tif ( (x|0) === 0 ) {\n\t\t\t\tout[ offset ] = x;\n\t\t\t\tout[ offset + stride ] = 0.0;\n\t\t\t}\n\t\t}\n\t\treturn kernelSincos( x, 0.0, out, stride, offset );\n\t}\n\t// Case: x is NaN or infinity\n\tif ( ix >= EXPONENT_MASK ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\t// Argument reduction...\n\tn = rempio2( x, Y );\n\n\t// Compute the sine and cosine together:\n\tkernelSincos( Y[ 0 ], Y[ 1 ], out, stride, offset );\n\n\tswitch ( n & 3 ) {\n\tcase 1:\n\t\ttmp = out[ offset + stride ];\n\t\tout[ offset + stride ] = -out[ offset ];\n\t\tout[ offset ] = tmp;\n\t\treturn out;\n\tcase 2:\n\t\tout[ offset ] *= -1;\n\t\tout[ offset + stride ] *= -1;\n\t\treturn out;\n\tcase 3:\n\t\t// Passing\n\t\ttmp = -out[ offset + stride ];\n\t\tout[ offset + stride ] = out[ offset ];\n\t\tout[ offset ] = tmp;\n\t\treturn out;\n\tdefault:\n\t\treturn out;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sincos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Simultaneously computes the sine and cosine of a number.\n*\n* @param {number} x - input value (in radians)\n* @returns {Array} sine and cosine\n*\n* @example\n* var v = sincos( 0.0 );\n* // returns [ ~0.0, ~1.0 ]\n*\n* @example\n* var v = sincos( 3.141592653589793/2.0 );\n* // returns [ ~1.0, ~0.0 ]\n*\n* @example\n* var v = sincos( -3.141592653589793/6.0 );\n* // returns [ ~-0.5, ~0.866 ]\n*\n* @example\n* var v = sincos( NaN );\n* // returns [ NaN, NaN ]\n*/\nfunction sincos( x ) {\n\treturn assign( x, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default sincos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Simultaneously compute the sine and cosine of a number.\n*\n* @module @stdlib/math/base/special/sincos\n*\n* @example\n* import sincos from '@stdlib/math/base/special/sincos';\n*\n* var v = sincos( 0.0 );\n* // returns [ ~0.0, ~1.0 ]\n*\n* v = sincos( 3.141592653589793/2.0 );\n* // returns [ ~1.0, ~0.0 ]\n*\n* v = sincos( -3.141592653589793/6.0 );\n* // returns [ ~-0.5, ~0.866 ]\n*\n* v = sincos( NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* import sincos from '@stdlib/math/base/special/sincos';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = sincos( out, 0.0 );\n* // return [ ~0.0, ~1.0 ]\n*\n* var bool = ( v === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://github.com/boostorg/math/blob/develop/include/boost/math/special_functions/detail/bessel_j0.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright Xiaogang Zhang, 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport poly1 from './rational_p1q1.js';\nimport poly2 from './rational_p2q2.js';\nimport polyC from './rational_pcqc.js';\nimport polyS from './rational_psqs.js';\n\n\n// VARIABLES //\n\nvar ONE_DIV_SQRT_PI = 0.5641895835477563;\nvar x1 = 2.4048255576957727686e+00;\nvar x2 = 5.5200781102863106496e+00;\nvar x11 = 6.160e+02;\nvar x12 = -1.42444230422723137837e-03;\nvar x21 = 1.4130e+03;\nvar x22 = 5.46860286310649596604e-04;\n\n// `sincos` workspace:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order zero.\n*\n* @param {number} x - input value\n* @returns {number} evaluated Bessel function\n*\n* @example\n* var v = j0( 0.0 );\n* // returns 1.0\n*\n* v = j0( 1.0 );\n* // returns ~0.765\n*\n* v = j0( Infinity );\n* // returns 0.0\n*\n* v = j0( -Infinity );\n* // returns 0.0\n*\n* v = j0( NaN );\n* // returns NaN\n*/\nfunction j0( x ) {\n\tvar rc;\n\tvar rs;\n\tvar y2;\n\tvar r;\n\tvar y;\n\tvar f;\n\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t}\n\tif ( x === PINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( x === 0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x <= 4.0 ) {\n\t\ty = x * x;\n\t\tr = poly1( y );\n\t\tf = ( x+x1 ) * ( (x - (x11/256.0)) - x12 );\n\t\treturn f * r;\n\t}\n\tif ( x <= 8.0 ) {\n\t\ty = 1.0 - ( ( x*x )/64.0 );\n\t\tr = poly2( y );\n\t\tf = ( x+x2 ) * ( (x - (x21/256.0)) - x22 );\n\t\treturn f * r;\n\t}\n\ty = 8.0 / x;\n\ty2 = y * y;\n\trc = polyC( y2 );\n\trs = polyS( y2 );\n\tf = ONE_DIV_SQRT_PI / sqrt(x);\n\n\t/*\n\t* What follows is really just:\n\t*\n\t* ```\n\t* var z = x - pi/4;\n\t* return f * (rc * cos(z) - y * rs * sin(z));\n\t* ```\n\t*\n\t* But using the addition formulae for sin and cos, plus the special values for sin/cos of `π/4`.\n\t*/\n\tsincos( x, sc, 1, 0 );\n\treturn f * ( ( rc * (sc[1]+sc[0]) ) - ( (y*rs) * (sc[0]-sc[1]) ) );\n}\n\n\n// EXPORTS //\n\nexport default j0;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.17291506903064494;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -412986685009.9087 + (x * (27282507878.60594 + (x * (-621407004.2354012 + (x * (6630299.79048338 + (x * (-36629.81465510709 + (x * (103.44222815443189 + (x * -0.12117036164593528))))))))))); // eslint-disable-line max-len\n\t\ts2 = 2388378799633.229 + (x * (26328198300.85965 + (x * (139850973.72263435 + (x * (456126.9622421994 + (x * (936.1402239233771 + (x * (1.0 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.12117036164593528 + (x * (103.44222815443189 + (x * (-36629.81465510709 + (x * (6630299.79048338 + (x * (-621407004.2354012 + (x * (27282507878.60594 + (x * -412986685009.9087))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (1.0 + (x * (936.1402239233771 + (x * (456126.9622421994 + (x * (139850973.72263435 + (x * (26328198300.85965 + (x * 2388378799633.229))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.005119512965174424;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -1831.9397969392085 + (x * (-12254.07816137899 + (x * (-7287.970246446462 + (x * (10341.910641583727 + (x * (11725.046279757104 + (x * (4417.670702532509 + (x * (743.2119668062425 + (x * 48.5917033559165))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -357834.78026152303 + (x * (245991.0226258631 + (x * (-84055.06259116957 + (x * (18680.99000835919 + (x * (-2945.876654550934 + (x * (333.07310774649073 + (x * (-25.258076240801554 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 48.5917033559165 + (x * (743.2119668062425 + (x * (4417.670702532509 + (x * (11725.046279757104 + (x * (10341.910641583727 + (x * (-7287.970246446462 + (x * (-12254.07816137899 + (x * -1831.9397969392085))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-25.258076240801554 + (x * (333.07310774649073 + (x * (-2945.876654550934 + (x * (18680.99000835919 + (x * (-84055.06259116957 + (x * (245991.0226258631 + (x * -357834.78026152303))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 22779.090197304686 + (x * (41345.38663958076 + (x * (21170.523380864943 + (x * (3480.648644324927 + (x * (153.76201909008356 + (x * 0.8896154842421046))))))))); // eslint-disable-line max-len\n\t\ts2 = 22779.090197304686 + (x * (41370.41249551042 + (x * (21215.350561880117 + (x * (3502.8735138235606 + (x * (157.11159858080893 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.8896154842421046 + (x * (153.76201909008356 + (x * (3480.648644324927 + (x * (21170.523380864943 + (x * (41345.38663958076 + (x * 22779.090197304686))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (157.11159858080893 + (x * (3502.8735138235606 + (x * (21215.350561880117 + (x * (41370.41249551042 + (x * 22779.090197304686))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.015625;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -89.22660020080009 + (x * (-185.91953644342993 + (x * (-111.83429920482737 + (x * (-22.300261666214197 + (x * (-1.244102674583564 + (x * -0.008803330304868075))))))))); // eslint-disable-line max-len\n\t\ts2 = 5710.502412851206 + (x * (11951.131543434614 + (x * (7264.278016921102 + (x * (1488.7231232283757 + (x * (90.59376959499312 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.008803330304868075 + (x * (-1.244102674583564 + (x * (-22.300261666214197 + (x * (-111.83429920482737 + (x * (-185.91953644342993 + (x * -89.22660020080009))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (90.59376959499312 + (x * (1488.7231232283757 + (x * (7264.278016921102 + (x * (11951.131543434614 + (x * 5710.502412851206))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/detail/bessel_j1.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright Xiaogang Zhang, 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport SQRT_PI from '@stdlib/constants/float64/sqrt-pi';\nimport poly1 from './rational_p1q1.js';\nimport poly2 from './rational_p2q2.js';\nimport polyC from './rational_pcqc.js';\nimport polyS from './rational_psqs.js';\n\n\n// VARIABLES //\n\nvar x1 = 3.8317059702075123156e+00;\nvar x2 = 7.0155866698156187535e+00;\nvar x11 = 9.810e+02;\nvar x12 = -3.2527979248768438556e-04;\nvar x21 = 1.7960e+03;\nvar x22 = -3.8330184381246462950e-05;\n\n// `sincos` workspace:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order one.\n*\n* ## Notes\n*\n* - Accuracy for subnormal `x` is very poor. Full accuracy is achieved at `1.0e-308` but trends progressively to zero at `5e-324`. This suggests that underflow (or overflow, perhaps due to a reciprocal) is effectively cutting off digits of precision until the computation loses all accuracy at `5e-324`.\n*\n* @param {number} x - input value\n* @returns {number} evaluated Bessel function\n*\n* @example\n* var v = j1( 0.0 );\n* // returns 0.0\n*\n* v = j1( 1.0 );\n* // returns ~0.440\n*\n* v = j1( Infinity );\n* // returns 0.0\n*\n* v = j1( -Infinity );\n* // returns 0.0\n*\n* v = j1( NaN );\n* // returns NaN\n*/\nfunction j1( x ) {\n\tvar value;\n\tvar rc;\n\tvar rs;\n\tvar y2;\n\tvar r;\n\tvar y;\n\tvar f;\n\tvar w;\n\n\tw = abs( x );\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( w === PINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( w <= 4.0 ) {\n\t\ty = x * x;\n\t\tr = poly1( y );\n\t\tf = w * ( w+x1 ) * ( ( w - (x11/256.0) ) - x12 );\n\t\tvalue = f * r;\n\t} else if ( w <= 8.0 ) {\n\t\ty = x * x;\n\t\tr = poly2( y );\n\t\tf = w * ( w+x2 ) * ( ( w - (x21/256.0) ) - x22 );\n\t\tvalue = f * r;\n\t} else {\n\t\ty = 8.0 / w;\n\t\ty2 = y * y;\n\t\trc = polyC( y2 );\n\t\trs = polyS( y2 );\n\t\tf = 1.0 / ( sqrt( w ) * SQRT_PI );\n\n\t\t/*\n\t\t* What follows is really just:\n\t\t*\n\t\t* ```\n\t\t* z = w - 0.75 * pi;\n\t\t* value = f * ( rc * cos( z ) - y * rs * sin( z ) );\n\t\t* ```\n\t\t*\n\t\t* but using the sin/cos addition rules plus constants for the values of sin/cos of `3π/4` which then cancel out with corresponding terms in \"f\".\n\t\t*/\n\t\tsincos( w, sc, 1, 0 );\n\t\tvalue = f * ( ( rc * (sc[0]-sc[1]) ) + ( (y*rs) * (sc[0]+sc[1]) ) );\n\t}\n\tif ( x < 0.0 ) {\n\t\tvalue *= -1.0;\n\t}\n\treturn value;\n}\n\n\n// EXPORTS //\n\nexport default j1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.03405537391318949;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -142585098013.66644 + (x * (6678104126.14924 + (x * (-115486967.64841276 + (x * (980629.0409895825 + (x * (-4461.579298277507 + (x * (10.650724020080236 + (x * -0.010767857011487301))))))))))); // eslint-disable-line max-len\n\t\ts2 = 4186860446082.0176 + (x * (42091902282.58013 + (x * (202283751.40097034 + (x * (591176.1449417479 + (x * (1074.227223951738 + (x * (1.0 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.010767857011487301 + (x * (10.650724020080236 + (x * (-4461.579298277507 + (x * (980629.0409895825 + (x * (-115486967.64841276 + (x * (6678104126.14924 + (x * -142585098013.66644))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (1.0 + (x * (1074.227223951738 + (x * (591176.1449417479 + (x * (202283751.40097034 + (x * (42091902282.58013 + (x * 4186860446082.0176))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.010158790774176108;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -17527881995806512.0 + (x * (1660853173129901.8 + (x * (-36658018905416.664 + (x * (355806656709.1062 + (x * (-1811393126.9860668 + (x * (5079326.614801118 + (x * (-7502.334222078161 + (x * 4.6179191852758255))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1725390588844768000.0 + (x * (17128800897135812.0 + (x * (84899346165481.42 + (x * (276227772862.44086 + (x * (648725028.9959639 + (x * (1126712.5065029138 + (x * (1388.6978985861358 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 4.6179191852758255 + (x * (-7502.334222078161 + (x * (5079326.614801118 + (x * (-1811393126.9860668 + (x * (355806656709.1062 + (x * (-36658018905416.664 + (x * (1660853173129901.8 + (x * -17527881995806512.0))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1388.6978985861358 + (x * (1126712.5065029138 + (x * (648725028.9959639 + (x * (276227772862.44086 + (x * (84899346165481.42 + (x * (17128800897135812.0 + (x * 1725390588844768000.0))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -4435757.816794128 + (x * (-9942246.505077641 + (x * (-6603373.248364939 + (x * (-1523529.3511811374 + (x * (-109824.05543459347 + (x * (-1611.6166443246102 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = -4435757.816794128 + (x * (-9934124.389934586 + (x * (-6585339.4797230875 + (x * (-1511809.5066341609 + (x * (-107263.8599110382 + (x * (-1455.0094401904962 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-1611.6166443246102 + (x * (-109824.05543459347 + (x * (-1523529.3511811374 + (x * (-6603373.248364939 + (x * (-9942246.505077641 + (x * -4435757.816794128))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-1455.0094401904962 + (x * (-107263.8599110382 + (x * (-1511809.5066341609 + (x * (-6585339.4797230875 + (x * (-9934124.389934586 + (x * -4435757.816794128))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.046875;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 33220.913409857225 + (x * (85145.1606753357 + (x * (66178.83658127084 + (x * (18494.262873223866 + (x * (1706.375429020768 + (x * (35.26513384663603 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 708712.8194102874 + (x * (1819458.0422439973 + (x * (1419460.669603721 + (x * (400294.43582266977 + (x * (37890.2297457722 + (x * (863.8367769604992 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (35.26513384663603 + (x * (1706.375429020768 + (x * (18494.262873223866 + (x * (66178.83658127084 + (x * (85145.1606753357 + (x * 33220.913409857225))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (863.8367769604992 + (x * (37890.2297457722 + (x * (400294.43582266977 + (x * (1419460.669603721 + (x * (1819458.0422439973 + (x * 708712.8194102874))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/detail/bessel_y0.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright Xiaogang Zhang, 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport sqrt from './../../../../base/special/sqrt';\nimport PI from '@stdlib/constants/float64/pi';\nimport SQRT_PI from '@stdlib/constants/float64/sqrt-pi';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport besselj0 from './../../../../base/special/besselj0';\nimport poly1 from './rational_p1q1.js';\nimport poly2 from './rational_p2q2.js';\nimport poly3 from './rational_p3q3.js';\nimport polyC from './rational_pcqc.js';\nimport polyS from './rational_psqs.js';\n\n\n// VARIABLES //\n\nvar ONE_DIV_SQRT_PI = 1.0 / SQRT_PI;\nvar TWO_DIV_PI = 2.0 / PI;\n\nvar x1 = 8.9357696627916752158e-01;\nvar x2 = 3.9576784193148578684e+00;\nvar x3 = 7.0860510603017726976e+00;\nvar x11 = 2.280e+02;\nvar x12 = 2.9519662791675215849e-03;\nvar x21 = 1.0130e+03;\nvar x22 = 6.4716931485786837568e-04;\nvar x31 = 1.8140e+03;\nvar x32 = 1.1356030177269762362e-04;\n\n// `sincos` workspace:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order zero.\n*\n* ## Notes\n*\n* - Accuracy for subnormal `x` is very poor. Full accuracy is achieved at `1.0e-308` but trends progressively to zero at `5e-324`. This suggests that underflow (or overflow, perhaps due to a reciprocal) is effectively cutting off digits of precision until the computation loses all accuracy at `5e-324`.\n*\n* @param {number} x - input value\n* @returns {number} evaluated Bessel function\n*\n* @example\n* var v = y0( 0.0 );\n* // returns -Infinity\n*\n* v = y0( 1.0 );\n* // returns ~0.088\n*\n* v = y0( -1.0 );\n* // returns NaN\n*\n* v = y0( Infinity );\n* // returns 0.0\n*\n* v = y0( -Infinity );\n* // returns NaN\n*\n* v = y0( NaN );\n* // returns NaN\n*/\nfunction y0( x ) {\n\tvar rc;\n\tvar rs;\n\tvar y2;\n\tvar r;\n\tvar y;\n\tvar z;\n\tvar f;\n\n\tif ( x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( x === PINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( x <= 3.0 ) {\n\t\ty = x * x;\n\t\tz = ( ln( x/x1 ) * besselj0( x ) ) * TWO_DIV_PI;\n\t\tr = poly1( y );\n\t\tf = ( x+x1 ) * ( ( x - (x11/256.0) ) - x12 );\n\t\treturn z + ( f*r );\n\t}\n\tif ( x <= 5.5 ) {\n\t\ty = x * x;\n\t\tz = ( ln( x/x2 ) * besselj0( x ) ) * TWO_DIV_PI;\n\t\tr = poly2( y );\n\t\tf = ( x+x2 ) * ( (x - (x21/256.0)) - x22 );\n\t\treturn z + ( f*r );\n\t}\n\tif ( x <= 8.0 ) {\n\t\ty = x * x;\n\t\tz = ( ln( x/x3 ) * besselj0( x ) ) * TWO_DIV_PI;\n\t\tr = poly3( y );\n\t\tf = ( x+x3 ) * ( (x - (x31/256.0)) - x32 );\n\t\treturn z + ( f*r );\n\t}\n\ty = 8.0 / x;\n\ty2 = y * y;\n\trc = polyC( y2 );\n\trs = polyS( y2 );\n\tf = ONE_DIV_SQRT_PI / sqrt( x );\n\n\t/*\n\t* The following code is really just:\n\t*\n\t* ```\n\t* z = x - 0.25 * pi;\n\t* value = f * ( rc * sin( z ) + y * rs * cos( z ) );\n\t* ```\n\t*\n\t* But using the sin/cos addition formulae and constant values for sin/cos of `π/4` which then cancel part of the \"f\" term as they're all `1/sqrt(2)`:\n\t*/\n\tsincos( x, sc, 1, 0 );\n\treturn f * ( ( rc * (sc[0]-sc[1]) ) + ( (y*rs) * (sc[1]+sc[0]) ) );\n}\n\n\n// EXPORTS //\n\nexport default y0;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.18214429522164177;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 107235387820.03177 + (x * (-8371625545.12605 + (x * (204222743.5737662 + (x * (-2128754.84744018 + (x * (10102.532948020907 + (x * -18.402381979244993))))))))); // eslint-disable-line max-len\n\t\ts2 = 588738657389.9703 + (x * (8161718777.729036 + (x * (55662956.624278255 + (x * (238893.93209447255 + (x * (664.7598668924019 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -18.402381979244993 + (x * (10102.532948020907 + (x * (-2128754.84744018 + (x * (204222743.5737662 + (x * (-8371625545.12605 + (x * 107235387820.03177))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (664.7598668924019 + (x * (238893.93209447255 + (x * (55662956.624278255 + (x * (8161718777.729036 + (x * 588738657389.9703))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.051200622130023854;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -22213976967566.19 + (x * (-551074352067.2264 + (x * (43600098638.60306 + (x * (-695904393.9461962 + (x * (4690528.861167863 + (x * (-14566.865832663636 + (x * 17.427031242901595))))))))))); // eslint-disable-line max-len\n\t\ts2 = 433861465807072.6 + (x * (5426682441941.234 + (x * (34015103849.97124 + (x * (139602027.7098683 + (x * (406699.82352539554 + (x * (830.3085761207029 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 17.427031242901595 + (x * (-14566.865832663636 + (x * (4690528.861167863 + (x * (-695904393.9461962 + (x * (43600098638.60306 + (x * (-551074352067.2264 + (x * -22213976967566.19))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (830.3085761207029 + (x * (406699.82352539554 + (x * (139602027.7098683 + (x * (34015103849.97124 + (x * (5426682441941.234 + (x * 433861465807072.6))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.023356489432789604;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -8072872690515021.0 + (x * (670166418691732.4 + (x * (-128299123640.88687 + (x * (-193630512667.72083 + (x * (2195882717.0518103 + (x * (-10085539.923498211 + (x * (21363.5341693139 + (x * -17.439661319197498))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 345637246288464600.0 + (x * (3927242556964031.0 + (x * (22598377924042.9 + (x * (86926121104.20982 + (x * (247272194.75672302 + (x * (539247.3920976806 + (x * (879.0336216812844 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -17.439661319197498 + (x * (21363.5341693139 + (x * (-10085539.923498211 + (x * (2195882717.0518103 + (x * (-193630512667.72083 + (x * (-128299123640.88687 + (x * (670166418691732.4 + (x * -8072872690515021.0))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (879.0336216812844 + (x * (539247.3920976806 + (x * (247272194.75672302 + (x * (86926121104.20982 + (x * (22598377924042.9 + (x * (3927242556964031.0 + (x * 345637246288464600.0))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 22779.090197304686 + (x * (41345.38663958076 + (x * (21170.523380864943 + (x * (3480.648644324927 + (x * (153.76201909008356 + (x * 0.8896154842421046))))))))); // eslint-disable-line max-len\n\t\ts2 = 22779.090197304686 + (x * (41370.41249551042 + (x * (21215.350561880117 + (x * (3502.8735138235606 + (x * (157.11159858080893 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.8896154842421046 + (x * (153.76201909008356 + (x * (3480.648644324927 + (x * (21170.523380864943 + (x * (41345.38663958076 + (x * 22779.090197304686))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (157.11159858080893 + (x * (3502.8735138235606 + (x * (21215.350561880117 + (x * (41370.41249551042 + (x * 22779.090197304686))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.015625;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -89.22660020080009 + (x * (-185.91953644342993 + (x * (-111.83429920482737 + (x * (-22.300261666214197 + (x * (-1.244102674583564 + (x * -0.008803330304868075))))))))); // eslint-disable-line max-len\n\t\ts2 = 5710.502412851206 + (x * (11951.131543434614 + (x * (7264.278016921102 + (x * (1488.7231232283757 + (x * (90.59376959499312 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.008803330304868075 + (x * (-1.244102674583564 + (x * (-22.300261666214197 + (x * (-111.83429920482737 + (x * (-185.91953644342993 + (x * -89.22660020080009))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (90.59376959499312 + (x * (1488.7231232283757 + (x * (7264.278016921102 + (x * (11951.131543434614 + (x * 5710.502412851206))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://github.com/boostorg/math/blob/develop/include/boost/math/special_functions/detail/bessel_y1.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright Xiaogang Zhang, 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport sqrt from './../../../../base/special/sqrt';\nimport PI from '@stdlib/constants/float64/pi';\nimport SQRT_PI from '@stdlib/constants/float64/sqrt-pi';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport besselj1 from './../../../../base/special/besselj1';\nimport poly1 from './rational_p1q1.js';\nimport poly2 from './rational_p2q2.js';\nimport polyC from './rational_pcqc.js';\nimport polyS from './rational_psqs.js';\n\n\n// VARIABLES //\n\nvar ONE_DIV_SQRT_PI = 1.0 / SQRT_PI;\nvar TWO_DIV_PI = 2.0 / PI;\n\nvar x1 = 2.1971413260310170351e+00;\nvar x2 = 5.4296810407941351328e+00;\nvar x11 = 5.620e+02;\nvar x12 = 1.8288260310170351490e-03;\nvar x21 = 1.3900e+03;\nvar x22 = -6.4592058648672279948e-06;\n\n// `sincos` workspace:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order one.\n*\n* ## Notes\n*\n* - Accuracy for subnormal `x` is very poor. Full accuracy is achieved at `1.0e-308` but trends progressively to zero at `5e-324`. This suggests that underflow (or overflow, perhaps due to a reciprocal) is effectively cutting off digits of precision until the computation loses all accuracy at `5e-324`.\n*\n* @param {number} x - input value\n* @returns {number} evaluated Bessel function\n*\n* @example\n* var v = y1( 0.0 );\n* // returns -Infinity\n*\n* v = y1( 1.0 );\n* // returns ~-0.781\n*\n* v = y1( -1.0 );\n* // returns NaN\n*\n* v = y1( Infinity );\n* // returns 0.0\n*\n* v = y1( -Infinity );\n* // returns NaN\n*\n* v = y1( NaN );\n* // returns NaN\n*/\nfunction y1( x ) {\n\tvar rc;\n\tvar rs;\n\tvar y2;\n\tvar r;\n\tvar y;\n\tvar z;\n\tvar f;\n\n\tif ( x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( x === PINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( x <= 4.0 ) {\n\t\ty = x * x;\n\t\tz = ( ln( x/x1 ) * besselj1( x ) ) * TWO_DIV_PI;\n\t\tr = poly1( y );\n\t\tf = ( ( x+x1 ) * ( (x - (x11/256.0)) - x12 ) ) / x;\n\t\treturn z + ( f*r );\n\t}\n\tif ( x <= 8.0 ) {\n\t\ty = x * x;\n\t\tz = ( ln( x/x2 ) * besselj1( x ) ) * TWO_DIV_PI;\n\t\tr = poly2( y );\n\t\tf = ( ( x+x2 ) * ( (x - (x21/256.0)) - x22 ) ) / x;\n\t\treturn z + ( f*r );\n\t}\n\ty = 8.0 / x;\n\ty2 = y * y;\n\trc = polyC( y2 );\n\trs = polyS( y2 );\n\tf = ONE_DIV_SQRT_PI / sqrt( x );\n\n\t/*\n\t* This code is really just:\n\t*\n\t* ```\n\t* z = x - 0.75 * PI;\n\t* return f * (rc * sin(z) + y * rs * cos(z));\n\t* ```\n\t*\n\t* But using the sin/cos addition rules, plus constants for sin/cos of `3π/4` which then cancel out with corresponding terms in \"f\".\n\t*/\n\tsincos( x, sc, 1, 0 );\n\treturn f * ( ( ( (y*rs) * (sc[0]-sc[1]) ) - ( rc * (sc[0]+sc[1]) ) ) );\n}\n\n\n// EXPORTS //\n\nexport default y1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.13187550549740895;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 40535726612579.55 + (x * (5470861171652.543 + (x * (-375959744978.196 + (x * (7214454821.450256 + (x * (-59157479.9974084 + (x * (221579.5322228026 + (x * -317.1442466004613))))))))))); // eslint-disable-line max-len\n\t\ts2 = 307378739210792.9 + (x * (4127228620040.646 + (x * (27800352738.690586 + (x * (122504351.22182964 + (x * (381364.70753052575 + (x * (820.7990816839387 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -317.1442466004613 + (x * (221579.5322228026 + (x * (-59157479.9974084 + (x * (7214454821.450256 + (x * (-375959744978.196 + (x * (5470861171652.543 + (x * 40535726612579.55))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (820.7990816839387 + (x * (381364.70753052575 + (x * (122504351.22182964 + (x * (27800352738.690586 + (x * (4127228620040.646 + (x * 307378739210792.9))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.021593919914419626;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 11514276357909012000.0 + (x * (-5680809457472421000.0 + (x * (-23638408497043136.0 + (x * (4068627528980474.5 + (x * (-59530713129741.984 + (x * (374536739624.3849 + (x * (-1195796191.2070618 + (x * (1915380.6858264203 + (x * -1233.7180442012952))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 533218443133161800000.0 + (x * (5696819882285718000.0 + (x * (30837179548112880.0 + (x * (111870100658569.7 + (x * (302217668529.60406 + (x * (635503180.8708892 + (x * (1045374.8201934079 + (x * (1285.516484932161 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -1233.7180442012952 + (x * (1915380.6858264203 + (x * (-1195796191.2070618 + (x * (374536739624.3849 + (x * (-59530713129741.984 + (x * (4068627528980474.5 + (x * (-23638408497043136.0 + (x * (-5680809457472421000.0 + (x * 11514276357909012000.0))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1285.516484932161 + (x * (1045374.8201934079 + (x * (635503180.8708892 + (x * (302217668529.60406 + (x * (111870100658569.7 + (x * (30837179548112880.0 + (x * (5696819882285718000.0 + (x * 533218443133161800000.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -4435757.816794128 + (x * (-9942246.505077641 + (x * (-6603373.248364939 + (x * (-1523529.3511811374 + (x * (-109824.05543459347 + (x * (-1611.6166443246102 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = -4435757.816794128 + (x * (-9934124.389934586 + (x * (-6585339.4797230875 + (x * (-1511809.5066341609 + (x * (-107263.8599110382 + (x * (-1455.0094401904962 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-1611.6166443246102 + (x * (-109824.05543459347 + (x * (-1523529.3511811374 + (x * (-6603373.248364939 + (x * (-9942246.505077641 + (x * -4435757.816794128))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-1455.0094401904962 + (x * (-107263.8599110382 + (x * (-1511809.5066341609 + (x * (-6585339.4797230875 + (x * (-9934124.389934586 + (x * -4435757.816794128))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.046875;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 33220.913409857225 + (x * (85145.1606753357 + (x * (66178.83658127084 + (x * (18494.262873223866 + (x * (1706.375429020768 + (x * (35.26513384663603 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 708712.8194102874 + (x * (1819458.0422439973 + (x * (1419460.669603721 + (x * (400294.43582266977 + (x * (37890.2297457722 + (x * (863.8367769604992 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (35.26513384663603 + (x * (1706.375429020768 + (x * (18494.262873223866 + (x * (66178.83658127084 + (x * (85145.1606753357 + (x * 33220.913409857225))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (863.8367769604992 + (x * (37890.2297457722 + (x * (400294.43582266977 + (x * (1419460.669603721 + (x * (1819458.0422439973 + (x * 708712.8194102874))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a double-precision floating-point number toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceil( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = ceil( 9.99999 );\n* // returns 10.0\n*\n* @example\n* var v = ceil( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = ceil( NaN );\n* // returns NaN\n*/\nvar ceil = Math.ceil; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point number toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = trunc( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = trunc( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = trunc( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = trunc( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = trunc( NaN );\n* // returns NaN\n*\n* @example\n* var v = trunc( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = trunc( -Infinity );\n* // returns -Infinity\n*/\nfunction trunc( x ) {\n\tif ( x < 0.0 ) {\n\t\treturn ceil( x );\n\t}\n\treturn floor( x );\n}\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyrights, licenses, and long comment were part of the original implementation available as part of [Go]{@link https://github.com/golang/go/blob/cb07765045aed5104a3df31507564ac99e6ddce8/src/math/exp.go}, which in turn was based on an implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/e_exp.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (c) 2009 The Go Authors. All rights reserved.\n*\n* Redistribution and use in source and binary forms, with or without\n* modification, are permitted provided that the following conditions are\n* met:\n*\n* * Redistributions of source code must retain the above copyright\n* notice, this list of conditions and the following disclaimer.\n* * Redistributions in binary form must reproduce the above\n* copyright notice, this list of conditions and the following disclaimer\n* in the documentation and/or other materials provided with the\n* distribution.\n* * Neither the name of Google Inc. nor the names of its\n* contributors may be used to endorse or promote products derived from\n* this software without specific prior written permission.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n* \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n* ```\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport trunc from './../../../../base/special/trunc';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport expmulti from './expmulti.js';\n\n\n// VARIABLES //\n\nvar LN2_HI = 6.93147180369123816490e-01;\nvar LN2_LO = 1.90821492927058770002e-10;\nvar LOG2_E = 1.44269504088896338700e+00;\nvar OVERFLOW = 7.09782712893383973096e+02;\nvar UNDERFLOW = -7.45133219101941108420e+02;\nvar NEARZERO = 1.0 / (1 << 28); // 2^-28\nvar NEG_NEARZERO = -NEARZERO;\n\n\n// MAIN //\n\n/**\n* Evaluates the natural exponential function.\n*\n* ## Method\n*\n* 1. We reduce \\\\( x \\\\) to an \\\\( r \\\\) so that \\\\( |r| \\leq 0.5 \\cdot \\ln(2) \\approx 0.34658 \\\\). Given \\\\( x \\\\), we find an \\\\( r \\\\) and integer \\\\( k \\\\) such that\n*\n* ```tex\n* \\begin{align*}\n* x &= k \\cdot \\ln(2) + r \\\\\n* |r| &\\leq 0.5 \\cdot \\ln(2)\n* \\end{align*}\n* ```\n*\n* \n*\n* \\\\( r \\\\) can be represented as \\\\( r = \\mathrm{hi} - \\mathrm{lo} \\\\) for better accuracy.\n*\n* \n*\n* 2. We approximate of \\\\( e^{r} \\\\) by a special rational function on the interval \\\\(\\[0,0.34658]\\\\):\n*\n* ```tex\n* \\begin{align*}\n* R\\left(r^2\\right) &= r \\cdot \\frac{ e^{r}+1 }{ e^{r}-1 } \\\\\n* &= 2 + \\frac{r^2}{6} - \\frac{r^4}{360} + \\ldots\n* \\end{align*}\n* ```\n*\n* We use a special Remes algorithm on \\\\(\\[0,0.34658]\\\\) to generate a polynomial of degree \\\\(5\\\\) to approximate \\\\(R\\\\). The maximum error of this polynomial approximation is bounded by \\\\(2^{-59}\\\\). In other words,\n*\n* ```tex\n* R(z) \\sim 2 + P_1 z + P_2 z^2 + P_3 z^3 + P_4 z^4 + P_5 z^5\n* ```\n*\n* where \\\\( z = r^2 \\\\) and\n*\n* ```tex\n* \\left| 2 + P_1 z + \\ldots + P_5 z^5 - R(z) \\right| \\leq 2^{-59}\n* ```\n*\n* \n*\n* The values of \\\\( P_1 \\\\) to \\\\( P_5 \\\\) are listed in the source code.\n*\n* \n*\n* The computation of \\\\( e^{r} \\\\) thus becomes\n*\n* ```tex\n* \\begin{align*}\n* e^{r} &= 1 + \\frac{2r}{R-r} \\\\\n* &= 1 + r + \\frac{r \\cdot R_1(r)}{2 - R_1(r)}\\ \\text{for better accuracy}\n* \\end{align*}\n* ```\n*\n* where\n*\n* ```tex\n* R_1(r) = r - P_1\\ r^2 + P_2\\ r^4 + \\ldots + P_5\\ r^{10}\n* ```\n*\n* 3. We scale back to obtain \\\\( e^{x} \\\\). From step 1, we have\n*\n* ```tex\n* e^{x} = 2^k e^{r}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* e^\\infty &= \\infty \\\\\n* e^{-\\infty} &= 0 \\\\\n* e^{\\mathrm{NaN}} &= \\mathrm{NaN} \\\\\n* e^0 &= 1\\ \\mathrm{is\\ exact\\ for\\ finite\\ argument\\ only}\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - According to an error analysis, the error is always less than \\\\(1\\\\) ulp (unit in the last place).\n*\n* - For an IEEE double,\n*\n* - if \\\\(x > 7.09782712893383973096\\mbox{e+}02\\\\), then \\\\(e^{x}\\\\) overflows\n* - if \\\\(x < -7.45133219101941108420\\mbox{e+}02\\\\), then \\\\(e^{x}\\\\) underflows\n*\n* - The hexadecimal values included in the source code are the intended ones for the used constants. Decimal values may be used, provided that the compiler will convert from decimal to binary accurately enough to produce the intended hexadecimal values.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = exp( 4.0 );\n* // returns ~54.5982\n*\n* @example\n* var v = exp( -9.0 );\n* // returns ~1.234e-4\n*\n* @example\n* var v = exp( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = exp( NaN );\n* // returns NaN\n*/\nfunction exp( x ) {\n\tvar hi;\n\tvar lo;\n\tvar k;\n\n\tif ( isnan( x ) || x === PINF ) {\n\t\treturn x;\n\t}\n\tif ( x === NINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( x > OVERFLOW ) {\n\t\treturn PINF;\n\t}\n\tif ( x < UNDERFLOW ) {\n\t\treturn 0.0;\n\t}\n\tif (\n\t\tx > NEG_NEARZERO &&\n\t\tx < NEARZERO\n\t) {\n\t\treturn 1.0 + x;\n\t}\n\t// Reduce and compute `r = hi - lo` for extra precision...\n\tif ( x < 0.0 ) {\n\t\tk = trunc( (LOG2_E*x) - 0.5 );\n\t} else {\n\t\tk = trunc( (LOG2_E*x) + 0.5 );\n\t}\n\thi = x - (k*LN2_HI);\n\tlo = k * LN2_LO;\n\n\treturn expmulti( hi, lo, k );\n}\n\n\n// EXPORTS //\n\nexport default exp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyrights, licenses, and long comment were part of the original implementation available as part of [Go]{@link https://github.com/golang/go/blob/cb07765045aed5104a3df31507564ac99e6ddce8/src/math/exp.go}, which in turn was based on an implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/e_exp.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (c) 2009 The Go Authors. All rights reserved.\n*\n* Redistribution and use in source and binary forms, with or without\n* modification, are permitted provided that the following conditions are\n* met:\n*\n* * Redistributions of source code must retain the above copyright\n* notice, this list of conditions and the following disclaimer.\n* * Redistributions in binary form must reproduce the above\n* copyright notice, this list of conditions and the following disclaimer\n* in the documentation and/or other materials provided with the\n* distribution.\n* * Neither the name of Google Inc. nor the names of its\n* contributors may be used to endorse or promote products derived from\n* this software without specific prior written permission.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n* \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n* ```\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ldexp from './../../../../base/special/ldexp';\nimport polyvalP from './polyval_p.js';\n\n\n// MAIN //\n\n/**\n* Computes \\\\(e^{r} 2^k\\\\) where \\\\(r = \\mathrm{hi} - \\mathrm{lo}\\\\) and \\\\(|r| \\leq \\ln(2)/2\\\\).\n*\n* @private\n* @param {number} hi - upper bound\n* @param {number} lo - lower bound\n* @param {integer} k - power of 2\n* @returns {number} function value\n*/\nfunction expmulti( hi, lo, k ) {\n\tvar r;\n\tvar t;\n\tvar c;\n\tvar y;\n\n\tr = hi - lo;\n\tt = r * r;\n\tc = r - ( t*polyvalP( t ) );\n\ty = 1.0 - ( lo - ( (r*c)/(2.0-c) ) - hi );\n\n\treturn ldexp( y, k );\n}\n\n\n// EXPORTS //\n\nexport default expmulti;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666666666666602;\n\t}\n\treturn 0.16666666666666602 + (x * (-0.0027777777777015593 + (x * (0.00006613756321437934 + (x * (-0.0000016533902205465252 + (x * 4.1381367970572385e-8))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\n\n\n// VARIABLES //\n\n// 0x3fefffff = 1072693247 => 0 01111111110 11111111111111111111 => biased exponent: 1022 = -1+1023 => 2^-1\nvar HIGH_MAX_NEAR_UNITY = 0x3fefffff|0; // asm type annotation\n\nvar HUGE = 1.0e300;\nvar TINY = 1.0e-300;\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function when \\\\(|y| > 2^64\\\\).\n*\n* @private\n* @param {number} x - base\n* @param {number} y - exponent\n* @returns {number} overflow or underflow result\n*\n* @example\n* var v = pow( 9.0, 3.6893488147419103e19 );\n* // returns Infinity\n*\n* @example\n* var v = pow( -3.14, -3.6893488147419103e19 );\n* // returns 0.0\n*/\nfunction pow( x, y ) {\n\tvar ahx;\n\tvar hx;\n\n\thx = getHighWord( x );\n\tahx = (hx & ABS_MASK);\n\n\tif ( ahx <= HIGH_MAX_NEAR_UNITY ) {\n\t\tif ( y < 0 ) {\n\t\t\t// Signal overflow...\n\t\t\treturn HUGE * HUGE;\n\t\t}\n\t\t// Signal underflow...\n\t\treturn TINY * TINY;\n\t}\n\t// `x` has a biased exponent greater than or equal to `0`...\n\n\tif ( y > 0 ) {\n\t\t// Signal overflow...\n\t\treturn HUGE * HUGE;\n\t}\n\t// Signal underflow...\n\treturn TINY * TINY;\n}\n\n\n// EXPORTS //\n\nexport default pow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport polyvalL from './polyval_l.js';\n\n\n// VARIABLES //\n\n// 0x000fffff = 1048575 => 0 00000000000 11111111111111111111\nvar HIGH_SIGNIFICAND_MASK = 0x000fffff|0; // asm type annotation\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000 => biased exponent: 1 = -1022+1023 => 2^-1022\nvar HIGH_MIN_NORMAL_EXP = 0x00100000|0; // asm type annotation\n\n// 0x3ff00000 = 1072693248 => 0 01111111111 00000000000000000000 => biased exponent: 1023 = 0+1023 => 2^0 = 1\nvar HIGH_BIASED_EXP_0 = 0x3ff00000|0; // asm type annotation\n\n// 0x20000000 = 536870912 => 0 01000000000 00000000000000000000 => biased exponent: 512 = -511+1023\nvar HIGH_BIASED_EXP_NEG_512 = 0x20000000|0; // asm type annotation\n\n// 0x00080000 = 524288 => 0 00000000000 10000000000000000000\nvar HIGH_SIGNIFICAND_HALF = 0x00080000|0; // asm type annotation\n\n// TODO: consider making an external constant\nvar HIGH_NUM_SIGNIFICAND_BITS = 20|0; // asm type annotation\n\nvar TWO53 = 9007199254740992.0;\t// 0x43400000, 0x00000000\n\n// 2/(3*LN2)\nvar CP = 9.61796693925975554329e-01; // 0x3FEEC709, 0xDC3A03FD\n\n// (float)CP\nvar CP_HI = 9.61796700954437255859e-01; // 0x3FEEC709, 0xE0000000\n\n// Low: CP_HI\nvar CP_LO = -7.02846165095275826516e-09; // 0xBE3E2FE0, 0x145B01F5\n\nvar BP = [\n\t1.0,\n\t1.5\n];\nvar DP_HI = [\n\t0.0,\n\t5.84962487220764160156e-01 // 0x3FE2B803, 0x40000000\n];\nvar DP_LO = [\n\t0.0,\n\t1.35003920212974897128e-08 // 0x3E4CFDEB, 0x43CFD006\n];\n\n\n// MAIN //\n\n/**\n* Computes \\\\(\\operatorname{log2}(ax)\\\\).\n*\n* @private\n* @param {Array} out - output array\n* @param {number} ax - absolute value of `x`\n* @param {number} ahx - high word of `ax`\n* @returns {Array} output array containing a tuple comprised of high and low parts\n*\n* @example\n* var t = log2ax( [ 0.0, 0.0 ], 9.0, 1075970048 ); // => [ t1, t2 ]\n* // returns [ 3.169923782348633, 0.0000012190936795504075 ]\n*/\nfunction log2ax( out, ax, ahx ) {\n\tvar tmp;\n\tvar ss; // `hs + ls`\n\tvar s2; // `ss` squared\n\tvar hs;\n\tvar ls;\n\tvar ht;\n\tvar lt;\n\tvar bp; // `BP` constant\n\tvar dp; // `DP` constant\n\tvar hp;\n\tvar lp;\n\tvar hz;\n\tvar lz;\n\tvar t1;\n\tvar t2;\n\tvar t;\n\tvar r;\n\tvar u;\n\tvar v;\n\tvar n;\n\tvar j;\n\tvar k;\n\n\tn = 0|0; // asm type annotation\n\n\t// Check if `x` is subnormal...\n\tif ( ahx < HIGH_MIN_NORMAL_EXP ) {\n\t\tax *= TWO53;\n\t\tn -= 53|0; // asm type annotation\n\t\tahx = getHighWord( ax );\n\t}\n\t// Extract the unbiased exponent of `x`:\n\tn += ((ahx >> HIGH_NUM_SIGNIFICAND_BITS) - BIAS)|0; // asm type annotation\n\n\t// Isolate the significand bits of `x`:\n\tj = (ahx & HIGH_SIGNIFICAND_MASK)|0; // asm type annotation\n\n\t// Normalize `ahx` by setting the (biased) exponent to `1023`:\n\tahx = (j | HIGH_BIASED_EXP_0)|0; // asm type annotation\n\n\t// Determine the interval of `|x|` by comparing significand bits...\n\n\t// |x| < sqrt(3/2)\n\tif ( j <= 0x3988E ) { // 0 00000000000 00111001100010001110\n\t\tk = 0;\n\t}\n\t// |x| < sqrt(3)\n\telse if ( j < 0xBB67A ) { // 0 00000000000 10111011011001111010\n\t\tk = 1;\n\t}\n\t// |x| >= sqrt(3)\n\telse {\n\t\tk = 0;\n\t\tn += 1|0; // asm type annotation\n\t\tahx -= HIGH_MIN_NORMAL_EXP;\n\t}\n\t// Load the normalized high word into `|x|`:\n\tax = setHighWord( ax, ahx );\n\n\t// Compute `ss = hs + ls = (x-1)/(x+1)` or `(x-1.5)/(x+1.5)`:\n\tbp = BP[ k ]; // BP[0] = 1.0, BP[1] = 1.5\n\tu = ax - bp; // (x-1) || (x-1.5)\n\tv = 1.0 / (ax + bp); // 1/(x+1) || 1/(x+1.5)\n\tss = u * v;\n\ths = setLowWord( ss, 0 ); // set all low word (less significant significand) bits to 0s\n\n\t// Compute `ht = ax + bp` (via manipulation, i.e., bit flipping, of the high word):\n\ttmp = ((ahx>>1) | HIGH_BIASED_EXP_NEG_512) + HIGH_SIGNIFICAND_HALF;\n\ttmp += (k << 18); // `(k<<18)` can be considered the word equivalent of `1.0` or `1.5`\n\tht = setHighWord( 0.0, tmp );\n\tlt = ax - (ht - bp);\n\tls = v * ( ( u - (hs*ht) ) - ( hs*lt ) );\n\n\t// Compute `log(ax)`...\n\n\ts2 = ss * ss;\n\tr = s2 * s2 * polyvalL( s2 );\n\tr += ls * (hs + ss);\n\ts2 = hs * hs;\n\tht = 3.0 + s2 + r;\n\tht = setLowWord( ht, 0 );\n\tlt = r - ((ht-3.0) - s2);\n\n\t// u+v = ss*(1+...):\n\tu = hs * ht;\n\tv = ( ls*ht ) + ( lt*ss );\n\n\t// 2/(3LN2) * (ss+...):\n\thp = u + v;\n\thp = setLowWord( hp, 0 );\n\tlp = v - (hp - u);\n\thz = CP_HI * hp; // CP_HI+CP_LO = 2/(3*LN2)\n\tlz = ( CP_LO*hp ) + ( lp*CP ) + DP_LO[ k ];\n\n\t// log2(ax) = (ss+...)*2/(3*LN2) = n + dp + hz + lz\n\tdp = DP_HI[ k ];\n\tt = n;\n\tt1 = ((hz+lz) + dp) + t; // log2(ax)\n\tt1 = setLowWord( t1, 0 );\n\tt2 = lz - (((t1-t) - dp) - hz);\n\n\tout[ 0 ] = t1;\n\tout[ 1 ] = t2;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default log2ax;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport polyvalW from './polyval_w.js';\n\n\n// VARIABLES //\n\n// 1/LN2\nvar INV_LN2 = 1.44269504088896338700e+00; // 0x3FF71547, 0x652B82FE\n\n// High (24 bits): 1/LN2\nvar INV_LN2_HI = 1.44269502162933349609e+00; // 0x3FF71547, 0x60000000\n\n// Low: 1/LN2\nvar INV_LN2_LO = 1.92596299112661746887e-08; // 0x3E54AE0B, 0xF85DDF44\n\n\n// MAIN //\n\n/**\n* Computes \\\\(\\operatorname{log}(x)\\\\) assuming \\\\(|1-x|\\\\) is small and using the approximation \\\\(x - x^2/2 + x^3/3 - x^4/4\\\\).\n*\n* @private\n* @param {Array} out - output array\n* @param {number} ax - absolute value of `x`\n* @returns {Array} output array containing a tuple comprised of high and low parts\n*\n* @example\n* var t = logx( [ 0.0, 0.0 ], 9.0 ); // => [ t1, t2 ]\n* // returns [ -1265.7236328125, -0.0008163940840404393 ]\n*/\nfunction logx( out, ax ) {\n\tvar t2;\n\tvar t1;\n\tvar t;\n\tvar w;\n\tvar u;\n\tvar v;\n\n\tt = ax - 1.0; // `t` has `20` trailing zeros\n\tw = t * t * polyvalW( t );\n\tu = INV_LN2_HI * t; // `INV_LN2_HI` has `21` significant bits\n\tv = ( t*INV_LN2_LO ) - ( w*INV_LN2 );\n\tt1 = u + v;\n\tt1 = setLowWord( t1, 0 );\n\tt2 = v - (t1 - u);\n\n\tout[ 0 ] = t1;\n\tout[ 1 ] = t2;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default logx;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport uint32ToInt32 from '@stdlib/number/uint32/base/to-int32';\nimport ldexp from './../../../../base/special/ldexp';\nimport LN2 from '@stdlib/constants/float64/ln-two';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport HIGH_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\nimport polyvalP from './polyval_p.js';\n\n\n// VARIABLES //\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000 => biased exponent: 1 = -1022+1023 => 2^-1022\nvar HIGH_MIN_NORMAL_EXP = 0x00100000|0; // asm type annotation\n\n// 0x3fe00000 = 1071644672 => 0 01111111110 00000000000000000000 => biased exponent: 1022 = -1+1023 => 2^-1\nvar HIGH_BIASED_EXP_NEG_1 = 0x3fe00000|0; // asm type annotation\n\n// TODO: consider making into an external constant\nvar HIGH_NUM_SIGNIFICAND_BITS = 20|0; // asm type annotation\n\n// High: LN2\nvar LN2_HI = 6.93147182464599609375e-01; // 0x3FE62E43, 0x00000000\n\n// Low: LN2\nvar LN2_LO = -1.90465429995776804525e-09; // 0xBE205C61, 0x0CA86C39\n\n\n// MAIN //\n\n/**\n* Computes \\\\(2^{\\mathrm{hp} + \\mathrm{lp}\\\\).\n*\n* @private\n* @param {number} j - high word of `hp + lp`\n* @param {number} hp - first power summand\n* @param {number} lp - second power summand\n* @returns {number} function value\n*\n* @example\n* var z = pow2( 1065961648, -0.3398475646972656, -0.000002438187359100815 );\n* // returns ~0.79\n*/\nfunction pow2( j, hp, lp ) {\n\tvar tmp;\n\tvar t1;\n\tvar t;\n\tvar r;\n\tvar u;\n\tvar v;\n\tvar w;\n\tvar z;\n\tvar n;\n\tvar i;\n\tvar k;\n\n\ti = (j & ABS_MASK)|0; // asm type annotation\n\tk = ((i>>HIGH_NUM_SIGNIFICAND_BITS) - BIAS)|0; // asm type annotation\n\tn = 0;\n\n\t// `|z| > 0.5`, set `n = z+0.5`\n\tif ( i > HIGH_BIASED_EXP_NEG_1 ) {\n\t\tn = (j + (HIGH_MIN_NORMAL_EXP>>(k+1)))>>>0; // asm type annotation\n\t\tk = (((n & ABS_MASK)>>HIGH_NUM_SIGNIFICAND_BITS) - BIAS)|0; // new k for n\n\t\ttmp = ((n & ~(HIGH_SIGNIFICAND_MASK >> k)))>>>0; // asm type annotation\n\t\tt = setHighWord( 0.0, tmp );\n\t\tn = (((n & HIGH_SIGNIFICAND_MASK)|HIGH_MIN_NORMAL_EXP) >> (HIGH_NUM_SIGNIFICAND_BITS-k))>>>0; // eslint-disable-line max-len\n\t\tif ( j < 0 ) {\n\t\t\tn = -n;\n\t\t}\n\t\thp -= t;\n\t}\n\tt = lp + hp;\n\tt = setLowWord( t, 0 );\n\tu = t * LN2_HI;\n\tv = ( (lp - (t-hp))*LN2 ) + ( t*LN2_LO );\n\tz = u + v;\n\tw = v - (z - u);\n\tt = z * z;\n\tt1 = z - ( t*polyvalP( t ) );\n\tr = ( (z*t1) / (t1-2.0) ) - ( w + (z*w) );\n\tz = 1.0 - (r - z);\n\tj = getHighWord( z );\n\tj = uint32ToInt32( j );\n\tj += (n << HIGH_NUM_SIGNIFICAND_BITS)>>>0; // asm type annotation\n\n\t// Check for subnormal output...\n\tif ( (j>>HIGH_NUM_SIGNIFICAND_BITS) <= 0 ) {\n\t\tz = ldexp( z, n );\n\t} else {\n\t\tz = setHighWord( z, j );\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default pow2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isOdd from './../../../../base/assert/is-odd';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport isInteger from './../../../../base/assert/is-integer';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport uint32ToInt32 from '@stdlib/number/uint32/base/to-int32';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport xIsZero from './x_is_zero.js';\nimport yIsHuge from './y_is_huge.js';\nimport yIsInfinite from './y_is_infinite.js';\nimport log2ax from './log2ax.js';\nimport logx from './logx.js';\nimport pow2 from './pow2.js';\n\n\n// VARIABLES //\n\n// 0x3fefffff = 1072693247 => 0 01111111110 11111111111111111111 => biased exponent: 1022 = -1+1023 => 2^-1\nvar HIGH_MAX_NEAR_UNITY = 0x3fefffff|0; // asm type annotation\n\n// 0x41e00000 = 1105199104 => 0 10000011110 00000000000000000000 => biased exponent: 1054 = 31+1023 => 2^31\nvar HIGH_BIASED_EXP_31 = 0x41e00000|0; // asm type annotation\n\n// 0x43f00000 = 1139802112 => 0 10000111111 00000000000000000000 => biased exponent: 1087 = 64+1023 => 2^64\nvar HIGH_BIASED_EXP_64 = 0x43f00000|0; // asm type annotation\n\n// 0x40900000 = 1083179008 => 0 10000001001 00000000000000000000 => biased exponent: 1033 = 10+1023 => 2^10 = 1024\nvar HIGH_BIASED_EXP_10 = 0x40900000|0; // asm type annotation\n\n// 0x3ff00000 = 1072693248 => 0 01111111111 00000000000000000000 => biased exponent: 1023 = 0+1023 => 2^0 = 1\nvar HIGH_BIASED_EXP_0 = 0x3ff00000|0; // asm type annotation\n\n// 0x4090cc00 = 1083231232 => 0 10000001001 00001100110000000000\nvar HIGH_1075 = 0x4090cc00|0; // asm type annotation\n\n// 0xc090cc00 = 3230714880 => 1 10000001001 00001100110000000000\nvar HIGH_NEG_1075 = 0xc090cc00>>>0; // asm type annotation\n\nvar HIGH_NUM_NONSIGN_BITS = 31|0; // asm type annotation\n\nvar HUGE = 1.0e300;\nvar TINY = 1.0e-300;\n\n// -(1024-log2(ovfl+.5ulp))\nvar OVT = 8.0085662595372944372e-17;\n\n// High/low words workspace:\nvar WORDS = [ 0|0, 0|0 ];\n\n// Log workspace:\nvar LOG_WORKSPACE = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function.\n*\n* ## Method\n*\n* 1. Let \\\\(x = 2^n (1+f)\\\\).\n*\n* 2. Compute \\\\(\\operatorname{log2}(x)\\\\) as\n*\n* ```tex\n* \\operatorname{log2}(x) = w_1 + w_2\n* ```\n*\n* where \\\\(w_1\\\\) has \\\\(53 - 24 = 29\\\\) bit trailing zeros.\n*\n* 3. Compute\n*\n* ```tex\n* y \\cdot \\operatorname{log2}(x) = n + y^\\prime\n* ```\n*\n* by simulating multi-precision arithmetic, where \\\\(|y^\\prime| \\leq 0.5\\\\).\n*\n* 4. Return\n*\n* ```tex\n* x^y = 2^n e^{y^\\prime \\cdot \\mathrm{log2}}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* x^{\\mathrm{NaN}} &= \\mathrm{NaN} & \\\\\n* (\\mathrm{NaN})^y &= \\mathrm{NaN} & \\\\\n* 1^y &= 1 & \\\\\n* x^0 &= 1 & \\\\\n* x^1 &= x & \\\\\n* (\\pm 0)^\\infty &= +0 & \\\\\n* (\\pm 0)^{-\\infty} &= +\\infty & \\\\\n* (+0)^y &= +0 & \\mathrm{if}\\ y > 0 \\\\\n* (+0)^y &= +\\infty & \\mathrm{if}\\ y < 0 \\\\\n* (-0)^y &= -\\infty & \\mathrm{if}\\ y\\ \\mathrm{is\\ an\\ odd\\ integer\\ and}\\ y < 0 \\\\\n* (-0)^y &= +\\infty & \\mathrm{if}\\ y\\ \\mathrm{is\\ not\\ an\\ odd\\ integer\\ and}\\ y < 0 \\\\\n* (-0)^y &= -0 & \\mathrm{if}\\ y\\ \\mathrm{is\\ an\\ odd\\ integer\\ and}\\ y > 0 \\\\\n* (-0)^y &= +0 & \\mathrm{if}\\ y\\ \\mathrm{is\\ not\\ an\\ odd\\ integer\\ and}\\ y > 0 \\\\\n* (-1)^{\\pm\\infty} &= \\mathrm{NaN} & \\\\\n* x^{\\infty} &= +\\infty & |x| > 1 \\\\\n* x^{\\infty} &= +0 & |x| < 1 \\\\\n* x^{-\\infty} &= +0 & |x| > 1 \\\\\n* x^{-\\infty} &= +\\infty & |x| < 1 \\\\\n* (-\\infty)^y &= (-0)^y & \\\\\n* \\infty^y &= +0 & y < 0 \\\\\n* \\infty^y &= +\\infty & y > 0 \\\\\n* x^y &= \\mathrm{NaN} & \\mathrm{if}\\ y\\ \\mathrm{is\\ not\\ a\\ finite\\ integer\\ and}\\ x < 0\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - \\\\(\\operatorname{pow}(x,y)\\\\) returns \\\\(x^y\\\\) nearly rounded. In particular, \\\\(\\operatorname{pow}(<\\mathrm{integer}>,<\\mathrm{integer}>)\\\\) **always** returns the correct integer, provided the value is representable.\n* - The hexadecimal values shown in the source code are the intended values for used constants. Decimal values may be used, provided the compiler will accurately convert decimal to binary in order to produce the hexadecimal values.\n*\n* @param {number} x - base\n* @param {number} y - exponent\n* @returns {number} function value\n*\n* @example\n* var v = pow( 2.0, 3.0 );\n* // returns 8.0\n*\n* @example\n* var v = pow( 4.0, 0.5 );\n* // returns 2.0\n*\n* @example\n* var v = pow( 100.0, 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = pow( 3.141592653589793, 5.0 );\n* // returns ~306.0197\n*\n* @example\n* var v = pow( 3.141592653589793, -0.2 );\n* // returns ~0.7954\n*\n* @example\n* var v = pow( NaN, 3.0 );\n* // returns NaN\n*\n* @example\n* var v = pow( 5.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = pow( NaN, NaN );\n* // returns NaN\n*/\nfunction pow( x, y ) {\n\tvar ahx; // absolute value high word `x`\n\tvar ahy; // absolute value high word `y`\n\tvar ax; // absolute value `x`\n\tvar hx; // high word `x`\n\tvar lx; // low word `x`\n\tvar hy; // high word `y`\n\tvar ly; // low word `y`\n\tvar sx; // sign `x`\n\tvar sy; // sign `y`\n\tvar y1;\n\tvar hp;\n\tvar lp;\n\tvar t;\n\tvar z; // y prime\n\tvar j;\n\tvar i;\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\t// Split `y` into high and low words:\n\ttoWords.assign( y, WORDS, 1, 0 );\n\thy = WORDS[ 0 ];\n\tly = WORDS[ 1 ];\n\n\t// Special cases `y`...\n\tif ( ly === 0 ) {\n\t\tif ( y === 0.0 ) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tif ( y === 1.0 ) {\n\t\t\treturn x;\n\t\t}\n\t\tif ( y === -1.0 ) {\n\t\t\treturn 1.0 / x;\n\t\t}\n\t\tif ( y === 0.5 ) {\n\t\t\treturn sqrt( x );\n\t\t}\n\t\tif ( y === -0.5 ) {\n\t\t\treturn 1.0 / sqrt( x );\n\t\t}\n\t\tif ( y === 2.0 ) {\n\t\t\treturn x * x;\n\t\t}\n\t\tif ( y === 3.0 ) {\n\t\t\treturn x * x * x;\n\t\t}\n\t\tif ( y === 4.0 ) {\n\t\t\tx *= x;\n\t\t\treturn x * x;\n\t\t}\n\t\tif ( isInfinite( y ) ) {\n\t\t\treturn yIsInfinite( x, y );\n\t\t}\n\t}\n\t// Split `x` into high and low words:\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thx = WORDS[ 0 ];\n\tlx = WORDS[ 1 ];\n\n\t// Special cases `x`...\n\tif ( lx === 0 ) {\n\t\tif ( hx === 0 ) {\n\t\t\treturn xIsZero( x, y );\n\t\t}\n\t\tif ( x === 1.0 ) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tif (\n\t\t\tx === -1.0 &&\n\t\t\tisOdd( y )\n\t\t) {\n\t\t\treturn -1.0;\n\t\t}\n\t\tif ( isInfinite( x ) ) {\n\t\t\tif ( x === NINF ) {\n\t\t\t\t// `pow( 1/x, -y )`\n\t\t\t\treturn pow( -0.0, -y );\n\t\t\t}\n\t\t\tif ( y < 0.0 ) {\n\t\t\t\treturn 0.0;\n\t\t\t}\n\t\t\treturn PINF;\n\t\t}\n\t}\n\tif (\n\t\tx < 0.0 &&\n\t\tisInteger( y ) === false\n\t) {\n\t\t// Signal NaN...\n\t\treturn (x-x)/(x-x);\n\t}\n\tax = abs( x );\n\n\t// Remove the sign bits (i.e., get absolute values):\n\tahx = (hx & ABS_MASK)|0; // asm type annotation\n\tahy = (hy & ABS_MASK)|0; // asm type annotation\n\n\t// Extract the sign bits:\n\tsx = (hx >>> HIGH_NUM_NONSIGN_BITS)|0; // asm type annotation\n\tsy = (hy >>> HIGH_NUM_NONSIGN_BITS)|0; // asm type annotation\n\n\t// Determine the sign of the result...\n\tif ( sx && isOdd( y ) ) {\n\t\tsx = -1.0;\n\t} else {\n\t\tsx = 1.0;\n\t}\n\t// Case 1: `|y|` is huge...\n\n\t// |y| > 2^31\n\tif ( ahy > HIGH_BIASED_EXP_31 ) {\n\t\t// `|y| > 2^64`, then must over- or underflow...\n\t\tif ( ahy > HIGH_BIASED_EXP_64 ) {\n\t\t\treturn yIsHuge( x, y );\n\t\t}\n\t\t// Over- or underflow if `x` is not close to unity...\n\n\t\tif ( ahx < HIGH_MAX_NEAR_UNITY ) {\n\t\t\t// y < 0\n\t\t\tif ( sy === 1 ) {\n\t\t\t\t// Signal overflow...\n\t\t\t\treturn sx * HUGE * HUGE;\n\t\t\t}\n\t\t\t// Signal underflow...\n\t\t\treturn sx * TINY * TINY;\n\t\t}\n\t\tif ( ahx > HIGH_BIASED_EXP_0 ) {\n\t\t\t// y > 0\n\t\t\tif ( sy === 0 ) {\n\t\t\t\t// Signal overflow...\n\t\t\t\treturn sx * HUGE * HUGE;\n\t\t\t}\n\t\t\t// Signal underflow...\n\t\t\treturn sx * TINY * TINY;\n\t\t}\n\t\t// At this point, `|1-x|` is tiny (`<= 2^-20`). Suffice to compute `log(x)` by `x - x^2/2 + x^3/3 - x^4/4`.\n\t\tt = logx( LOG_WORKSPACE, ax );\n\t}\n\t// Case 2: `|y|` is not huge...\n\telse {\n\t\tt = log2ax( LOG_WORKSPACE, ax, ahx );\n\t}\n\t// Split `y` into `y1 + y2` and compute `(y1+y2) * (t1+t2)`...\n\ty1 = setLowWord( y, 0 );\n\tlp = ( (y-y1)*t[0] ) + ( y*t[1] );\n\thp = y1 * t[0];\n\tz = lp + hp;\n\n\t// Note: *can* be more performant to use `getHighWord` and `getLowWord` directly, but using `toWords` looks cleaner.\n\ttoWords.assign( z, WORDS, 1, 0 );\n\tj = uint32ToInt32( WORDS[0] );\n\ti = uint32ToInt32( WORDS[1] );\n\n\t// z >= 1024\n\tif ( j >= HIGH_BIASED_EXP_10 ) {\n\t\t// z > 1024\n\t\tif ( ((j-HIGH_BIASED_EXP_10)|i) !== 0 ) {\n\t\t\t// Signal overflow...\n\t\t\treturn sx * HUGE * HUGE;\n\t\t}\n\t\tif ( (lp+OVT) > (z-hp) ) {\n\t\t\t// Signal overflow...\n\t\t\treturn sx * HUGE * HUGE;\n\t\t}\n\t}\n\t// z <= -1075\n\telse if ( (j&ABS_MASK) >= HIGH_1075 ) {\n\t\t// z < -1075\n\t\tif ( ((j-HIGH_NEG_1075)|i) !== 0 ) {\n\t\t\t// Signal underflow...\n\t\t\treturn sx * TINY * TINY;\n\t\t}\n\t\tif ( lp <= (z-hp) ) {\n\t\t\t// Signal underflow...\n\t\t\treturn sx * TINY * TINY;\n\t\t}\n\t}\n\t// Compute `2^(hp+lp)`...\n\tz = pow2( j, hp, lp );\n\n\treturn sx * z;\n}\n\n\n// EXPORTS //\n\nexport default pow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function when \\\\( y = \\pm \\infty\\\\).\n*\n* @private\n* @param {number} x - base\n* @param {number} y - exponent\n* @returns {number} function value\n*\n* @example\n* var v = pow( -1.0, Infinity );\n* // returns NaN\n*\n* @example\n* var v = pow( -1.0, -Infinity );\n* // returns NaN\n*\n* @example\n* var v = pow( 1.0, Infinity );\n* // returns 1.0\n*\n* @example\n* var v = pow( 1.0, -Infinity );\n* // returns 1.0\n*\n* @example\n* var v = pow( 0.5, Infinity );\n* // returns 0.0\n*\n* @example\n* var v = pow( 0.5, -Infinity );\n* // returns Infinity\n*\n* @example\n* var v = pow( 1.5, -Infinity );\n* // returns 0.0\n*\n* @example\n* var v = pow( 1.5, Infinity );\n* // returns Infinity\n*/\nfunction pow( x, y ) {\n\tif ( x === -1.0 ) {\n\t\t// Julia (0.4.2) and Python (2.7.9) return `1.0` (WTF???). JavaScript (`Math.pow`), R, and libm return `NaN`. We choose `NaN`, as the value is indeterminate; i.e., we cannot determine whether `y` is odd, even, or somewhere in between.\n\t\treturn (x-x)/(x-x); // signal NaN\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn 1.0;\n\t}\n\t// (|x| > 1 && y === NINF) || (|x| < 1 && y === PINF)\n\tif ( (abs(x) < 1.0) === (y === PINF) ) {\n\t\treturn 0.0;\n\t}\n\t// (|x| > 1 && y === PINF) || (|x| < 1 && y === NINF)\n\treturn PINF;\n}\n\n\n// EXPORTS //\n\nexport default pow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_pow.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isOdd from './../../../../base/assert/is-odd';\nimport copysign from './../../../../base/special/copysign';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function when \\\\(|x| = 0\\\\).\n*\n* @private\n* @param {number} x - base\n* @param {number} y - exponent\n* @returns {number} function value\n*\n* @example\n* var v = pow( 0.0, 2 );\n* // returns 0.0\n*\n* @example\n* var v = pow( -0.0, -9 );\n* // returns -Infinity\n*\n* @example\n* var v = pow( 0.0, -9 );\n* // returns Infinity\n*\n* @example\n* var v = pow( -0.0, 9 );\n* // returns 0.0\n*\n* @example\n* var v = pow( 0.0, -Infinity );\n* // returns Infinity\n*\n* @example\n* var v = pow( 0.0, Infinity );\n* // returns 0.0\n*/\nfunction pow( x, y ) {\n\tif ( y === NINF ) {\n\t\treturn PINF;\n\t}\n\tif ( y === PINF ) {\n\t\treturn 0.0;\n\t}\n\tif ( y > 0.0 ) {\n\t\tif ( isOdd( y ) ) {\n\t\t\treturn x; // handles +-0\n\t\t}\n\t\treturn 0.0;\n\t}\n\t// y < 0.0\n\tif ( isOdd( y ) ) {\n\t\treturn copysign( PINF, x ); // handles +-0\n\t}\n\treturn PINF;\n}\n\n\n// EXPORTS //\n\nexport default pow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.5;\n\t}\n\treturn 0.5 + (x * (-0.3333333333333333 + (x * 0.25)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.5999999999999946;\n\t}\n\treturn 0.5999999999999946 + (x * (0.4285714285785502 + (x * (0.33333332981837743 + (x * (0.272728123808534 + (x * (0.23066074577556175 + (x * 0.20697501780033842))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666666666666602;\n\t}\n\treturn 0.16666666666666602 + (x * (-0.0027777777777015593 + (x * (0.00006613756321437934 + (x * (-0.0000016533902205465252 + (x * 4.1381367970572385e-8))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn Infinity;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 709811.662581658 + (x * (679979.8474157227 + (x * (293136.7857211597 + (x * (74887.54032914672 + (x * (12555.290582413863 + (x * (1443.4299244417066 + (x * (115.24194596137347 + (x * (6.309239205732627 + (x * (0.22668404630224365 + (x * (0.004826466289237662 + (x * 0.00004624429436045379))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (362880.0 + (x * (1026576.0 + (x * (1172700.0 + (x * (723680.0 + (x * (269325.0 + (x * (63273.0 + (x * (9450.0 + (x * (870.0 + (x * (45.0 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.00004624429436045379 + (x * (0.004826466289237662 + (x * (0.22668404630224365 + (x * (6.309239205732627 + (x * (115.24194596137347 + (x * (1443.4299244417066 + (x * (12555.290582413863 + (x * (74887.54032914672 + (x * (293136.7857211597 + (x * (679979.8474157227 + (x * 709811.662581658))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (45.0 + (x * (870.0 + (x * (9450.0 + (x * (63273.0 + (x * (269325.0 + (x * (723680.0 + (x * (1172700.0 + (x * (1026576.0 + (x * (362880.0 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport E from '@stdlib/constants/float64/e';\nimport EPSILON from '@stdlib/constants/float64/eps';\nimport lanczosSumExpGScaled from './lanczos_sum_expg_scaled.js'; // Lanczos approximation scaled by exp(G)\n\n\n// VARIABLES //\n\nvar G = 10.90051099999999983936049829935654997826;\n\n\n// MAIN //\n\n/**\n* Evaluates the beta function.\n*\n* @param {NonNegativeNumber} a - input value\n* @param {NonNegativeNumber} b - input value\n* @returns {number} evaluated beta function\n*\n* @example\n* var v = beta( 0.0, 0.5 );\n* // returns Infinity\n*\n* @example\n* var v = beta( 1.0, 1.0 );\n* // returns 1.0\n*\n* @example\n* var v = beta( -1.0, 2.0 );\n* // returns NaN\n*\n* @example\n* var v = beta( 5.0, 0.2 );\n* // returns ~3.382\n*\n* @example\n* var v = beta( 4.0, 1.0 );\n* // returns 0.25\n*\n* @example\n* var v = beta( NaN, 2.0 );\n* // returns NaN\n*/\nfunction beta( a, b ) {\n\tvar ambh;\n\tvar agh;\n\tvar bgh;\n\tvar cgh;\n\tvar res;\n\tvar tmp;\n\tvar c;\n\n\tif ( isnan( a ) || isnan( b ) ) {\n\t\treturn NaN;\n\t}\n\tif ( a < 0.0 || b < 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( b === 1.0 ) {\n\t\treturn 1.0 / a;\n\t}\n\tif ( a === 1.0 ) {\n\t\treturn 1.0 / b;\n\t}\n\tc = a + b;\n\tif ( c < EPSILON ) {\n\t\tres = c / a;\n\t\tres /= b;\n\t\treturn res;\n\t}\n\n\t// Special cases:\n\tif ( c === a && b < EPSILON ) {\n\t\treturn 1.0 / b;\n\t}\n\tif ( c === b && a < EPSILON ) {\n\t\treturn 1.0 / a;\n\t}\n\n\tif ( a < b ) {\n\t\t// Swap `a` and `b`:\n\t\ttmp = b;\n\t\tb = a;\n\t\ta = tmp;\n\t}\n\n\t// Lanczos calculation:\n\tagh = a + G - 0.5;\n\tbgh = b + G - 0.5;\n\tcgh = c + G - 0.5;\n\tres = lanczosSumExpGScaled( a ) * ( lanczosSumExpGScaled( b )/lanczosSumExpGScaled( c ) ); // eslint-disable-line max-len\n\tambh = a - 0.5 - b;\n\tif ( ( abs( b*ambh ) < ( cgh*100.0 ) ) && a > 100.0 ) {\n\t\t// Special case where the base of the power term is close to 1; compute `(1+x)^y` instead:\n\t\tres *= exp( ambh * log1p( -b/cgh ) );\n\t} else {\n\t\tres *= pow( agh/cgh, ambh );\n\t}\n\tif ( cgh > 1.0e10 ) {\n\t\t// This avoids possible overflow, but appears to be marginally less accurate:\n\t\tres *= pow( (agh/cgh)*(bgh/cgh), b );\n\t} else {\n\t\tres *= pow( (agh*bgh)/(cgh*cgh), b );\n\t}\n\tres *= sqrt( E/bgh );\n\treturn res;\n}\n\n\n// EXPORTS //\n\nexport default beta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FDLIBM]{@link http://www.netlib.org/fdlibm/s_expm1.c} and [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/s_expm1.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport fromWords from '@stdlib/number/float64/base/from-words';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport FLOAT64_EXPONENT_BIAS from '@stdlib/constants/float64/exponent-bias';\nimport HALF_LN2 from '@stdlib/constants/float64/half-ln-two';\nimport polyval from './polyval_q.js';\n\n\n// VARIABLES //\n\nvar OVERFLOW_THRESHOLD = 7.09782712893383973096e+02; // 0x40862E42 0xFEFA39EF\n\n// High and low words of ln(2):\nvar LN2_HI = 6.93147180369123816490e-01; // 0x3FE62E42 0xFEE00000\nvar LN2_LO = 1.90821492927058770002e-10; // 0x3DEA39EF 0x35793C76\n\n// 1 / ln(2):\nvar LN2_INV = 1.44269504088896338700e+00; // 0x3FF71547 0x652B82FE\n\n// ln(2) * 56:\nvar LN2x56 = 3.88162421113569373274e+01; // 0x4043687A 0x9F1AF2B1\n\n// ln(2) * 1.5:\nvar LN2_HALFX3 = 1.03972077083991796413e+00; // 0x3FF0A2B2 0x3F3BAB73\n\n\n// MAIN //\n\n/**\n* Computes `exp(x) - 1`.\n*\n* ## Method\n*\n* 1. Given \\\\(x\\\\), we use argument reduction to find \\\\(r\\\\) and an integer \\\\(k\\\\) such that\n*\n* ```tex\n* x = k \\cdot \\ln(2) + r\n* ```\n*\n* where\n*\n* ```tex\n* |r| \\leq \\frac{\\ln(2)}{2} \\approx 0.34658\n* ```\n*\n* \n*\n* A correction term \\\\(c\\\\) will need to be computed to compensate for the error in \\\\(r\\\\) when rounded to a floating-point number.\n*\n* \n*\n* 2. To approximate \\\\(\\operatorname{expm1}(r)\\\\), we use a special rational function on the interval \\\\(\\[0,0.34658]\\\\). Since\n*\n* ```tex\n* r \\frac{e^r + 1}{e^r - 1} = 2 + \\frac{r^2}{6} - \\frac{r^4}{360} + \\ldots\n* ```\n*\n* we define \\\\(\\operatorname{R1}(r^2)\\\\) by\n*\n* ```tex\n* r \\frac{e^r + 1}{e^r - 1} = 2 + \\frac{r^2}{6} \\operatorname{R1}(r^2)\n* ```\n*\n* That is,\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{R1}(r^2) &= \\frac{6}{r} \\biggl(\\frac{e^r+1}{e^r-1} - \\frac{2}{r}\\biggr) \\\\\n* &= \\frac{6}{r} \\biggl( 1 + 2 \\biggl(\\frac{1}{e^r-1} - \\frac{1}{r}\\biggr)\\biggr) \\\\\n* &= 1 - \\frac{r^2}{60} + \\frac{r^4}{2520} - \\frac{r^6}{100800} + \\ldots\n* \\end{align*}\n* ```\n*\n* We use a special Remes algorithm on \\\\(\\[0,0.347]\\\\) to generate a polynomial of degree \\\\(5\\\\) in \\\\(r^2\\\\) to approximate \\\\(\\mathrm{R1}\\\\). The maximum error of this polynomial approximation is bounded by \\\\(2^{-61}\\\\). In other words,\n*\n* ```tex\n* \\operatorname{R1}(z) \\approx 1 + \\mathrm{Q1} \\cdot z + \\mathrm{Q2} \\cdot z^2 + \\mathrm{Q3} \\cdot z^3 + \\mathrm{Q4} \\cdot z^4 + \\mathrm{Q5} \\cdot z^5\n* ```\n*\n* where\n*\n* ```tex\n* \\begin{align*}\n* \\mathrm{Q1} &= -1.6666666666666567384\\mbox{e-}2 \\\\\n* \\mathrm{Q2} &= 3.9682539681370365873\\mbox{e-}4 \\\\\n* \\mathrm{Q3} &= -9.9206344733435987357\\mbox{e-}6 \\\\\n* \\mathrm{Q4} &= 2.5051361420808517002\\mbox{e-}7 \\\\\n* \\mathrm{Q5} &= -6.2843505682382617102\\mbox{e-}9\n* \\end{align*}\n* ```\n*\n* where \\\\(z = r^2\\\\) and the values of \\\\(\\mathrm{Q1}\\\\) to \\\\(\\mathrm{Q5}\\\\) are listed in the source. The error is bounded by\n*\n* ```tex\n* \\biggl| 1 + \\mathrm{Q1} \\cdot z + \\ldots + \\mathrm{Q5} \\cdot z - \\operatorname{R1}(z) \\biggr| \\leq 2^{-61}\n* ```\n*\n* \\\\(\\operatorname{expm1}(r) = e^r - 1\\\\) is then computed by the following specific way which minimizes the accumulated rounding error\n*\n* ```tex\n* \\operatorname{expm1}(r) = r + \\frac{r^2}{2} + \\frac{r^3}{2} \\biggl( \\frac{3 - (\\mathrm{R1} + \\mathrm{R1} \\cdot \\frac{r}{2})}{6 - r ( 3 - \\mathrm{R1} \\cdot \\frac{r}{2})} \\biggr)\n* ```\n*\n* To compensate for the error in the argument reduction, we use\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{expm1}(r+c) &= \\operatorname{expm1}(r) + c + \\operatorname{expm1}(r) \\cdot c \\\\\n* &\\approx \\operatorname{expm1}(r) + c + rc\n* \\end{align*}\n* ```\n*\n* Thus, \\\\(c + rc\\\\) will be added in as the correction terms for \\\\(\\operatorname{expm1}(r+c)\\\\). Now, we can rearrange the term to avoid optimization screw up.\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{expm1}(r+c) &\\approx r - \\biggl( \\biggl( r + \\biggl( \\frac{r^2}{2} \\biggl( \\frac{\\mathrm{R1} - (3 - \\mathrm{R1} \\cdot \\frac{r}{2})}{6 - r (3 - \\mathrm{R1} \\cdot \\frac{r}{2})} \\biggr) - c \\biggr) - c \\biggr) - \\frac{r^2}{2} \\biggr) \\\\\n* &= r - \\mathrm{E}\n* \\end{align*}\n* ```\n*\n* 3. To scale back to obtain \\\\(\\operatorname{expm1}(x)\\\\), we have (from step 1)\n*\n* ```tex\n* \\operatorname{expm1}(x) = \\begin{cases}\n* 2^k (\\operatorname{expm1}(r) + 1) - 1 \\\\\n* 2^k (\\operatorname{expm1}(r) + (1-2^{-k}))\n* \\end{cases}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{expm1}(\\infty) &= \\infty \\\\\n* \\operatorname{expm1}(-\\infty) &= -1 \\\\\n* \\operatorname{expm1}(\\mathrm{NaN}) &= \\mathrm{NaN}\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - For finite arguments, only \\\\(\\operatorname{expm1}(0) = 0\\\\) is exact.\n*\n* - To save one multiplication, we scale the coefficient \\\\(\\mathrm{Qi}\\\\) to \\\\(\\mathrm{Qi} \\cdot {2^i}\\\\) and replace \\\\(z\\\\) by \\\\(\\frac{x^2}{2}\\\\).\n*\n* - To achieve maximum accuracy, we compute \\\\(\\operatorname{expm1}(x)\\\\) by\n*\n* - if \\\\(x < -56 \\cdot \\ln(2)\\\\), return \\\\(-1.0\\\\) (raise inexact if \\\\(x\\\\) does not equal \\\\(\\infty\\\\))\n*\n* - if \\\\(k = 0\\\\), return \\\\(r-\\mathrm{E}\\\\)\n*\n* - if \\\\(k = -1\\\\), return \\\\(\\frac{(r-\\mathrm{E})-1}{2}\\\\)\n*\n* - if \\\\(k = 1\\\\),\n*\n* - if \\\\(r < -0.25\\\\), return \\\\(2((r+0.5)- \\mathrm{E})\\\\)\n* - else return \\\\(1+2(r-\\mathrm{E})\\\\)\n*\n* - if \\\\(k < -2\\\\) or \\\\(k > 56\\\\), return \\\\(2^k(1-(\\mathrm{E}-r)) - 1\\\\) (or \\\\(e^x-1\\\\))\n*\n* - if \\\\(k \\leq 20\\\\), return \\\\(2^k((1-2^{-k})-(\\mathrm{E}-r))\\\\)\n*\n* - else return \\\\(2^k(1-((\\mathrm{E}+2^{-k})-r))\\\\)\n*\n* - For IEEE 754 double, if \\\\(x > 7.09782712893383973096\\mbox{e+}02\\\\), then \\\\(\\operatorname{expm1}(x)\\\\) will overflow.\n*\n* - The hexadecimal values listed in the source are the intended ones for the implementation constants. Decimal values may be used, provided that the compiler will convert from decimal to binary accurately enough to produce the intended hexadecimal values.\n*\n* - According to an error analysis, the error is always less than \\\\(1\\\\) ulp (unit in the last place).\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = expm1( 0.2 );\n* // returns ~0.221\n*\n* @example\n* var v = expm1( -9.0 );\n* // returns ~-0.9999\n*\n* @example\n* var v = expm1( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = expm1( NaN );\n* // returns NaN\n*/\nfunction expm1( x ) {\n\tvar halfX;\n\tvar twopk;\n\tvar sign;\n\tvar hi;\n\tvar lo;\n\tvar hx;\n\tvar r1;\n\tvar y;\n\tvar z;\n\tvar c;\n\tvar t;\n\tvar e;\n\tvar k;\n\n\tif ( x === PINF || isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x === NINF ) {\n\t\treturn -1.0;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn x; // handles +-0 (IEEE 754-2008)\n\t}\n\t// Set y = |x|:\n\tif ( x < 0.0 ) {\n\t\tsign = true;\n\t\ty = -x;\n\t} else {\n\t\tsign = false;\n\t\ty = x;\n\t}\n\t// Filter out huge and non-finite arguments...\n\tif ( y >= LN2x56 ) { // if |x| >= 56*ln(2)\n\t\tif ( sign ) { // if x <= -56*ln(2)\n\t\t\treturn -1.0;\n\t\t}\n\t\tif ( y >= OVERFLOW_THRESHOLD ) { // if |x| >= 709.78...\n\t\t\treturn PINF;\n\t\t}\n\t}\n\t// Extract the more significant bits from |x|:\n\thx = getHighWord( y )|0; // asm type annotation\n\n\t// Argument reduction...\n\tif ( y > HALF_LN2 ) { // if |x| > 0.5*ln(2)\n\t\tif ( y < LN2_HALFX3 ) { // if |x| < 1.5*ln(2)\n\t\t\tif ( sign ) {\n\t\t\t\thi = x + LN2_HI;\n\t\t\t\tlo = -LN2_LO;\n\t\t\t\tk = -1;\n\t\t\t} else {\n\t\t\t\thi = x - LN2_HI;\n\t\t\t\tlo = LN2_LO;\n\t\t\t\tk = 1;\n\t\t\t}\n\t\t} else {\n\t\t\tif ( sign ) {\n\t\t\t\tk = (LN2_INV*x) - 0.5;\n\t\t\t} else {\n\t\t\t\tk = (LN2_INV*x) + 0.5;\n\t\t\t}\n\t\t\tk |= 0; // use a bitwise OR to cast `k` to an integer (see also asm.js type annotations: http://asmjs.org/spec/latest/#annotations)\n\t\t\tt = k;\n\t\t\thi = x - (t*LN2_HI); // t*ln2_hi is exact here\n\t\t\tlo = t * LN2_LO;\n\t\t}\n\t\tx = hi - lo;\n\t\tc = (hi-x) - lo;\n\t}\n\t// If |x| < 2**-54 => high word: 0 01111001001 00000000000000000000 => 0x3c900000 = 1016070144 => exponent = 01111001001 = 969 = 1023-54\n\telse if ( hx < 1016070144 ) {\n\t\treturn x;\n\t} else {\n\t\tk = 0;\n\t}\n\t// x is now in primary range...\n\thalfX = 0.5 * x;\n\tz = x * halfX;\n\n\tr1 = 1.0 + ( z * polyval( z ) );\n\n\tt = 3.0 - (r1*halfX);\n\te = z * ( (r1-t) / (6.0 - (x*t)) );\n\tif ( k === 0 ) {\n\t\treturn x - ( (x*e) - z );\t// c is 0\n\t}\n\ttwopk = fromWords( (FLOAT64_EXPONENT_BIAS+k)<<20, 0 ); // 2^k\n\te = ( x * (e-c) ) - c;\n\te -= z;\n\tif ( k === -1 ) {\n\t\treturn ( 0.5*(x-e) ) - 0.5;\n\t}\n\tif ( k === 1 ) {\n\t\tif ( x < -0.25 ) {\n\t\t\treturn -2.0 * ( e - (x+0.5) );\n\t\t}\n\t\treturn 1.0 + ( 2.0 * (x-e) );\n\t}\n\tif ( k <= -2 || k > 56 ) { // suffice to return exp(x)-1\n\t\ty = 1.0 - (e-x);\n\t\tif ( k === 1024 ) {\n\t\t\t// Add k to y's exponent:\n\t\t\thi = (getHighWord( y ) + (k<<20))|0; // asm type annotation\n\t\t\ty = setHighWord( y, hi );\n\t\t} else {\n\t\t\ty *= twopk;\n\t\t}\n\t\treturn y - 1.0;\n\t}\n\tt = 1.0;\n\tif ( k < 20 ) {\n\t\t// 0x3ff00000 - (0x200000>>k) = 1072693248 - (0x200000>>k) => 0x3ff00000 = 00111111111100000000000000000000 and 0x200000 = 0 00000000010 00000000000000000000\n\t\thi = (1072693248 - (0x200000>>k))|0; // asm type annotation\n\t\tt = setHighWord( t, hi ); // t=1-2^-k\n\t\ty = t - (e-x);\n\t} else {\n\t\thi = ( (FLOAT64_EXPONENT_BIAS-k)<<20 )|0; // asm type annotation\n\t\tt = setHighWord( t, hi ); // t=2^-k\n\t\ty = x - (e+t);\n\t\ty += 1.0;\n\t}\n\ty *= twopk;\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default expm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.03333333333333313;\n\t}\n\treturn -0.03333333333333313 + (x * (0.0015873015872548146 + (x * (-0.0000793650757867488 + (x * (0.000004008217827329362 + (x * -2.0109921818362437e-7))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport isnan from './../../../../base/assert/is-nan';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === NINF || y === NINF ) {\n\t\treturn NINF;\n\t}\n\tif ( x === y && x === 0.0 ) {\n\t\tif ( isNegativeZero( x ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/k_cos.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport polyval13 from './polyval_c13.js';\nimport polyval46 from './polyval_c46.js';\n\n\n// MAIN //\n\n/**\n* Computes the cosine on \\\\( \\[-\\pi/4, \\pi/4] \\\\), where \\\\( \\pi/4 \\approx 0.785398164 \\\\).\n*\n* ## Method\n*\n* - Since \\\\( \\cos(-x) = \\cos(x) \\\\), we need only to consider positive \\\\(x\\\\).\n*\n* - If \\\\( x < 2^{-27} \\\\), return \\\\(1\\\\) which is inexact if \\\\( x \\ne 0 \\\\).\n*\n* - \\\\( cos(x) \\\\) is approximated by a polynomial of degree \\\\(14\\\\) on \\\\( \\[0,\\pi/4] \\\\).\n*\n* ```tex\n* \\cos(x) \\approx 1 - \\frac{x \\cdot x}{2} + C_1 \\cdot x^4 + \\ldots + C_6 \\cdot x^{14}\n* ```\n*\n* where the Remez error is\n*\n* ```tex\n* \\left| \\cos(x) - \\left( 1 - \\frac{x^2}{2} + C_1x^4 + C_2x^6 + C_3x^8 + C_4x^{10} + C_5x^{12} + C_6x^{15} \\right) \\right| \\le 2^{-58}\n* ```\n*\n* - Let \\\\( C_1x^4 + C_2x^6 + C_3x^8 + C_4x^{10} + C_5x^{12} + C_6x^{14} \\\\), then\n*\n* ```tex\n* \\cos(x) \\approx 1 - \\frac{x \\cdot x}{2} + r\n* ```\n*\n* Since\n*\n* ```tex\n* \\cos(x+y) \\approx \\cos(x) - \\sin(x) \\cdot y \\approx \\cos(x) - x \\cdot y\n* ```\n*\n* a correction term is necessary in \\\\( \\cos(x) \\\\). Hence,\n*\n* ```tex\n* \\cos(x+y) = 1 - \\left( \\frac{x \\cdot x}{2} - (r - x \\cdot y) \\right)\n* ```\n*\n* For better accuracy, rearrange to\n*\n* ```tex\n* \\cos(x+y) \\approx w + \\left( t + ( r - x \\cdot y ) \\right)\n* ```\n*\n* where \\\\( w = 1 - \\frac{x \\cdot x}{2} \\\\) and \\\\( t \\\\) is a tiny correction term (\\\\( 1 - \\frac{x \\cdot x}{2} = w + t \\\\) exactly in infinite precision). The exactness of \\\\(w + t\\\\) in infinite precision depends on \\\\(w\\\\) and \\\\(t\\\\) having the same precision as \\\\(x\\\\).\n*\n* @param {number} x - input value (in radians, assumed to be bounded by ~pi/4 in magnitude)\n* @param {number} y - tail of `x`\n* @returns {number} cosine\n*\n* @example\n* var v = kernelCos( 0.0, 0.0 );\n* // returns ~1.0\n*\n* @example\n* var v = kernelCos( 3.141592653589793/6.0, 0.0 );\n* // returns ~0.866\n*\n* @example\n* var v = kernelCos( 0.785, -1.144e-17 );\n* // returns ~0.707\n*\n* @example\n* var v = kernelCos( NaN, 0.0 );\n* // returns NaN\n*/\nfunction kernelCos( x, y ) {\n\tvar hz;\n\tvar r;\n\tvar w;\n\tvar z;\n\n\tz = x * x;\n\tw = z * z;\n\tr = z * polyval13( z );\n\tr += w * w * polyval46( z );\n\thz = 0.5 * z;\n\tw = 1.0 - hz;\n\treturn w + ( ((1.0-w) - hz) + ((z*r) - (x*y)) );\n}\n\n\n// EXPORTS //\n\nexport default kernelCos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0416666666666666;\n\t}\n\treturn 0.0416666666666666 + (x * (-0.001388888888887411 + (x * 0.00002480158728947673))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -2.7557314351390663e-7;\n\t}\n\treturn -2.7557314351390663e-7 + (x * (2.087572321298175e-9 + (x * -1.1359647557788195e-11))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/k_sin.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar S1 = -1.66666666666666324348e-01; // 0xBFC55555, 0x55555549\nvar S2 = 8.33333333332248946124e-03; // 0x3F811111, 0x1110F8A6\nvar S3 = -1.98412698298579493134e-04; // 0xBF2A01A0, 0x19C161D5\nvar S4 = 2.75573137070700676789e-06; // 0x3EC71DE3, 0x57B1FE7D\nvar S5 = -2.50507602534068634195e-08; // 0xBE5AE5E6, 0x8A2B9CEB\nvar S6 = 1.58969099521155010221e-10; // 0x3DE5D93A, 0x5ACFD57C\n\n\n// MAIN //\n\n/**\n* Computes the sine on \\\\( \\approx \\[-\\pi/4, \\pi/4] \\\\) (except on \\\\(-0\\\\)), where \\\\( \\pi/4 \\approx 0.7854 \\\\).\n*\n* ## Method\n*\n* - Since \\\\( \\sin(-x) = -\\sin(x) \\\\), we need only to consider positive \\\\(x\\\\).\n*\n* - Callers must return \\\\( \\sin(-0) = -0 \\\\) without calling here since our odd polynomial is not evaluated in a way that preserves \\\\(-0\\\\). Callers may do the optimization \\\\( \\sin(x) \\approx x \\\\) for tiny \\\\(x\\\\).\n*\n* - \\\\( \\sin(x) \\\\) is approximated by a polynomial of degree \\\\(13\\\\) on \\\\( \\left\\[0,\\tfrac{pi}{4}\\right] \\\\)\n*\n* ```tex\n* \\sin(x) \\approx x + S_1 \\cdot x^3 + \\ldots + S_6 \\cdot x^{13}\n* ```\n*\n* where\n*\n* ```tex\n* \\left| \\frac{\\sin(x)}{x} \\left( 1 + S_1 \\cdot x + S_2 \\cdot x + S_3 \\cdot x + S_4 \\cdot x + S_5 \\cdot x + S_6 \\cdot x \\right) \\right| \\le 2^{-58}\n* ```\n*\n* - We have\n*\n* ```tex\n* \\sin(x+y) = \\sin(x) + \\sin'(x') \\cdot y \\approx \\sin(x) + (1-x*x/2) \\cdot y\n* ```\n*\n* For better accuracy, let\n*\n* ```tex\n* r = x^3 * \\left( S_2 + x^2 \\cdot \\left( S_3 + x^2 * \\left( S_4 + x^2 \\cdot ( S_5+x^2 \\cdot S_6 ) \\right) \\right) \\right)\n* ```\n*\n* then\n*\n* ```tex\n* \\sin(x) = x + \\left( S_1 \\cdot x + ( x \\cdot (r-y/2) + y ) \\right)\n* ```\n*\n* @param {number} x - input value (in radians, assumed to be bounded by `~pi/4` in magnitude)\n* @param {number} y - tail of `x`\n* @returns {number} sine\n*\n* @example\n* var v = kernelSin( 0.0, 0.0 );\n* // returns ~0.0\n*\n* @example\n* var v = kernelSin( 3.141592653589793/6.0, 0.0 );\n* // returns ~0.5\n*\n* @example\n* var v = kernelSin( 0.619, 9.279e-18 );\n* // returns ~0.58\n*\n* @example\n* var v = kernelSin( NaN, 0.0 );\n* // returns NaN\n*\n* @example\n* var v = kernelSin( 3.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = kernelSin( NaN, NaN );\n* // returns NaN\n*/\nfunction kernelSin( x, y ) {\n\tvar r;\n\tvar v;\n\tvar w;\n\tvar z;\n\n\tz = x * x;\n\tw = z * z;\n\tr = S2 + (z * (S3 + (z*S4))) + (z * w * (S5 + (z*S6)));\n\tv = z * x;\n\tif ( y === 0.0 ) {\n\t\treturn x + (v * (S1 + (z*r)));\n\t}\n\treturn x - (((z*((0.5*y) - (v*r))) - y) - (v*S1));\n}\n\n\n// EXPORTS //\n\nexport default kernelSin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_sin.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport HIGH_WORD_ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport HIGH_WORD_EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport kernelCos from './../../../../base/special/kernel-cos';\nimport kernelSin from './../../../../base/special/kernel-sin';\nimport rempio2 from './../../../../base/special/rempio2';\n\n\n// VARIABLES //\n\n// High word for PI/4: 0x3fe921fb = 1072243195 => 00111111111010010010000111111011\nvar PIO4_HIGH_WORD = 0x3fe921fb|0; // asm type annotation\n\n// 2^-26 = 1.4901161193847656e-8 => 0011111001010000000000000000000000000000000000000000000000000000 => high word => 00111110010100000000000000000000 => 0x3e500000 = 1045430272\nvar SMALL_HIGH_WORD = 0x3e500000|0; // asm type annotation\n\n// Array for storing remainder elements:\nvar Y = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the sine of a number.\n*\n* ## Method\n*\n* - Let \\\\(S\\\\), \\\\(C\\\\), and \\\\(T\\\\) denote the \\\\(\\sin\\\\), \\\\(\\cos\\\\), and \\\\(\\tan\\\\), respectively, on \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\).\n*\n* - Reduce the argument \\\\(x\\\\) to \\\\(y1+y2 = x-k\\pi/2\\\\) in \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\), and let \\\\(n = k \\mod 4\\\\).\n*\n* - We have\n*\n* | n | sin(x) | cos(x) | tan(x) |\n* | - | ------ | ------ | ------ |\n* | 0 | S | C | T |\n* | 1 | C | -S | -1/T |\n* | 2 | -S | -C | T |\n* | 3 | -C | S | -1/T |\n*\n* @param {number} x - input value (in radians)\n* @returns {number} sine\n*\n* @example\n* var v = sin( 0.0 );\n* // returns ~0.0\n*\n* @example\n* var v = sin( 3.141592653589793/2.0 );\n* // returns ~1.0\n*\n* @example\n* var v = sin( -3.141592653589793/6.0 );\n* // returns ~-0.5\n*\n* @example\n* var v = sin( NaN );\n* // returns NaN\n*/\nfunction sin( x ) {\n\tvar ix;\n\tvar n;\n\n\tix = getHighWord( x );\n\tix &= HIGH_WORD_ABS_MASK;\n\n\t// Case: |x| ~< π/4\n\tif ( ix <= PIO4_HIGH_WORD ) {\n\t\t// Case: |x| ~< 2^-26\n\t\tif ( ix < SMALL_HIGH_WORD ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn kernelSin( x, 0.0 );\n\t}\n\t// Case: x is NaN or infinity\n\tif ( ix >= HIGH_WORD_EXPONENT_MASK ) {\n\t\treturn NaN;\n\t}\n\t// Argument reduction...\n\tn = rempio2( x, Y );\n\tswitch ( n & 3 ) {\n\tcase 0:\n\t\treturn kernelSin( Y[ 0 ], Y[ 1 ] );\n\tcase 1:\n\t\treturn kernelCos( Y[ 0 ], Y[ 1 ] );\n\tcase 2:\n\t\treturn -kernelSin( Y[ 0 ], Y[ 1 ] );\n\tdefault:\n\t\treturn -kernelCos( Y[ 0 ], Y[ 1 ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 1992, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\nimport pow from './../../../../base/special/pow';\nimport exp from './../../../../base/special/exp';\nimport polyval from './polyval_s.js';\n\n\n// VARIABLES //\n\nvar MAX_STIRLING = 143.01608;\n\n\n// MAIN //\n\n/**\n* Evaluates the gamma function using Stirling's formula. The polynomial is valid for \\\\(33 \\leq x \\leq 172\\\\).\n*\n* @private\n* @param {number} x - input value\n* @returns {number} function value\n*/\nfunction gamma( x ) {\n\tvar w;\n\tvar y;\n\tvar v;\n\n\tw = 1.0 / x;\n\tw = 1.0 + ( w * polyval( w ) );\n\ty = exp( x );\n\n\t// Check `x` to avoid `pow()` overflow...\n\tif ( x > MAX_STIRLING ) {\n\t\tv = pow( x, ( 0.5*x ) - 0.25 );\n\t\ty = v * (v/y);\n\t} else {\n\t\ty = pow( x, x-0.5 ) / y;\n\t}\n\treturn SQRT_TWO_PI * y * w;\n}\n\n\n// EXPORTS //\n\nexport default gamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.08333333333334822;\n\t}\n\treturn 0.08333333333334822 + (x * (0.0034722222160545866 + (x * (-0.0026813261780578124 + (x * (-0.00022954996161337813 + (x * 0.0007873113957930937))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 1992, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport EULER from '@stdlib/constants/float64/eulergamma';\n\n\n// MAIN //\n\n/**\n* Evaluates the gamma function using a small-value approximation.\n*\n* @private\n* @param {number} x - input value\n* @param {number} z - scale factor\n* @returns {number} function value\n*/\nfunction gamma( x, z ) {\n\treturn z / ( (1.0+( EULER*x )) * x );\n}\n\n\n// EXPORTS //\n\nexport default gamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 1992, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport sin from './../../../../base/special/sin';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PI from '@stdlib/constants/float64/pi';\nimport stirlingApprox from './stirling_approximation.js';\nimport smallApprox from './small_approximation.js';\nimport rateval from './rational_pq.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the gamma function.\n*\n* ## Method\n*\n* 1. Arguments \\\\(|x| \\leq 34\\\\) are reduced by recurrence and the function approximated by a rational function of degree \\\\(6/7\\\\) in the interval \\\\((2,3)\\\\).\n* 2. Large negative arguments are made positive using a reflection formula.\n* 3. Large arguments are handled by Stirling's formula.\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:---------:|:--------:|:-------:|:-------:|\n* | DEC | -34,34 | 10000 | 1.3e-16 | 2.5e-17 |\n* | IEEE | -170,-33 | 20000 | 2.3e-15 | 3.3e-16 |\n* | IEEE | -33, 33 | 20000 | 9.4e-16 | 2.2e-16 |\n* | IEEE | 33, 171.6 | 20000 | 2.3e-15 | 3.2e-16 |\n*\n* - Error for arguments outside the test range will be larger owing to error amplification by the exponential function.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = gamma( 4.0 );\n* // returns 6.0\n*\n* @example\n* var v = gamma( -1.5 );\n* // returns ~2.363\n*\n* @example\n* var v = gamma( -0.5 );\n* // returns ~-3.545\n*\n* @example\n* var v = gamma( 0.5 );\n* // returns ~1.772\n*\n* @example\n* var v = gamma( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = gamma( -0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = gamma( NaN );\n* // returns NaN\n*/\nfunction gamma( x ) {\n\tvar sign;\n\tvar q;\n\tvar p;\n\tvar z;\n\tif (\n\t\t(isInteger( x ) && x < 0) ||\n\t\tx === NINF ||\n\t\tisnan( x )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\tif ( isNegativeZero( x ) ) {\n\t\t\treturn NINF;\n\t\t}\n\t\treturn PINF;\n\t}\n\tif ( x > 171.61447887182298 ) {\n\t\treturn PINF;\n\t}\n\tif ( x < -170.5674972726612 ) {\n\t\treturn 0.0;\n\t}\n\tq = abs( x );\n\tif ( q > 33.0 ) {\n\t\tif ( x >= 0.0 ) {\n\t\t\treturn stirlingApprox( x );\n\t\t}\n\t\tp = floor( q );\n\n\t\t// Check whether `x` is even...\n\t\tif ( (p&1) === 0 ) {\n\t\t\tsign = -1.0;\n\t\t} else {\n\t\t\tsign = 1.0;\n\t\t}\n\t\tz = q - p;\n\t\tif ( z > 0.5 ) {\n\t\t\tp += 1.0;\n\t\t\tz = q - p;\n\t\t}\n\t\tz = q * sin( PI * z );\n\t\treturn sign * PI / ( abs(z)*stirlingApprox(q) );\n\t}\n\t// Reduce `x`...\n\tz = 1.0;\n\twhile ( x >= 3.0 ) {\n\t\tx -= 1.0;\n\t\tz *= x;\n\t}\n\twhile ( x < 0.0 ) {\n\t\tif ( x > -1.0e-9 ) {\n\t\t\treturn smallApprox( x, z );\n\t\t}\n\t\tz /= x;\n\t\tx += 1.0;\n\t}\n\twhile ( x < 2.0 ) {\n\t\tif ( x < 1.0e-9 ) {\n\t\t\treturn smallApprox( x, z );\n\t\t}\n\t\tz /= x;\n\t\tx += 1.0;\n\t}\n\tif ( x === 2.0 ) {\n\t\treturn z;\n\t}\n\tx -= 2.0;\n\treturn z * rateval( x );\n}\n\n\n// EXPORTS //\n\nexport default gamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.0 + (x * (0.4942148268014971 + (x * (0.20744822764843598 + (x * (0.04763678004571372 + (x * (0.010421379756176158 + (x * (0.0011913514700658638 + (x * (0.00016011952247675185 + (x * 0.0))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.0714304917030273 + (x * (-0.23459179571824335 + (x * (0.035823639860549865 + (x * (0.011813978522206043 + (x * (-0.004456419138517973 + (x * (0.0005396055804933034 + (x * -0.000023158187332412014))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.00016011952247675185 + (x * (0.0011913514700658638 + (x * (0.010421379756176158 + (x * (0.04763678004571372 + (x * (0.20744822764843598 + (x * (0.4942148268014971 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -0.000023158187332412014 + (x * (0.0005396055804933034 + (x * (-0.004456419138517973 + (x * (0.011813978522206043 + (x * (0.035823639860549865 + (x * (-0.23459179571824335 + (x * (0.0714304917030273 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport gamma from './../../../../base/special/gamma';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport FLOAT64_MAX_SAFE_NTH_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial';\nimport FACTORIALS from './factorials.json';\n\n\n// MAIN //\n\n/**\n* Evaluates the factorial of `x`.\n*\n* @param {number} x - input value\n* @returns {number} factorial\n*\n* @example\n* var v = factorial( 3.0 );\n* // returns 6.0\n*\n* @example\n* var v = factorial( -1.5 );\n* // returns ~-3.545\n*\n* @example\n* var v = factorial( -0.5 );\n* // returns ~1.772\n*\n* @example\n* var v = factorial( 0.5 );\n* // returns ~0.886\n*\n* @example\n* var v = factorial( -10.0 );\n* // returns NaN\n*\n* @example\n* var v = factorial( 171.0 );\n* // returns Infinity\n*\n* @example\n* var v = factorial( NaN );\n* // returns NaN\n*/\nfunction factorial( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInteger( x ) ) {\n\t\tif ( x < 0 ) {\n\t\t\treturn NaN;\n\t\t}\n\t\tif ( x <= FLOAT64_MAX_SAFE_NTH_FACTORIAL ) {\n\t\t\treturn FACTORIALS[ x ];\n\t\t}\n\t\treturn PINF;\n\t}\n\treturn gamma( x + 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default factorial;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn Infinity;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 38474670393.31777 + (x * (36857665043.51951 + (x * (15889202453.72942 + (x * (4059208354.298835 + (x * (680547661.1834733 + (x * (78239755.00312005 + (x * (6246580.776401795 + (x * (341986.3488721347 + (x * (12287.194511824551 + (x * (261.61404416416684 + (x * 2.5066282746310007))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (362880.0 + (x * (1026576.0 + (x * (1172700.0 + (x * (723680.0 + (x * (269325.0 + (x * (63273.0 + (x * (9450.0 + (x * (870.0 + (x * (45.0 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 2.5066282746310007 + (x * (261.61404416416684 + (x * (12287.194511824551 + (x * (341986.3488721347 + (x * (6246580.776401795 + (x * (78239755.00312005 + (x * (680547661.1834733 + (x * (4059208354.298835 + (x * (15889202453.72942 + (x * (36857665043.51951 + (x * 38474670393.31777))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (45.0 + (x * (870.0 + (x * (9450.0 + (x * (63273.0 + (x * (269325.0 + (x * (723680.0 + (x * (1172700.0 + (x * (1026576.0 + (x * (362880.0 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006-7, 2013-14.\n* Copyright Paul A. Bristow 2007, 2013-14.\n* Copyright Nikhar Agrawal 2013-14.\n* Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport lanczosSum from './../../../../base/special/gamma-lanczos-sum';\nimport gamma from './../../../../base/special/gamma';\nimport log1p from './../../../../base/special/log1p';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport EPSILON from '@stdlib/constants/float64/eps';\nimport E from '@stdlib/constants/float64/e';\nimport G from '@stdlib/constants/float64/gamma-lanczos-g';\nimport MAX_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial';\n\n\n// VARIABLES //\n\nvar FACTORIAL_169 = 4.269068009004705e+304;\n\n\n// MAIN //\n\n/**\n* Calculates the ratio of two gamma functions via Lanczos approximation.\n*\n* ## Notes\n*\n* - When \\\\( z < \\epsilon \\\\), we get spurious numeric overflow unless we're very careful. This can occur either inside `lanczosSum(z)` or in the final combination of terms. To avoid this, split the product up into 2 (or 3) parts:\n*\n* ```tex\n* \\begin{align*}\n* G(z) / G(L) &= 1 / (z \\cdot G(L)) ; z < \\eps, L = z + \\delta = \\delta \\\\\n* z * G(L) &= z * G(lim) \\cdot (G(L)/G(lim)) ; lim = \\text{largest factorial}\n* \\end{align*}\n* ```\n*\n* @private\n* @param {number} z - first gamma parameter\n* @param {number} delta - difference\n* @returns {number} gamma ratio\n*/\nfunction gammaDeltaRatioLanczos( z, delta ) {\n\tvar result;\n\tvar ratio;\n\tvar zgh;\n\n\tif ( z < EPSILON ) {\n\t\tif ( delta >= MAX_FACTORIAL ) {\n\t\t\tratio = gammaDeltaRatioLanczos( delta, MAX_FACTORIAL-delta );\n\t\t\tratio *= z;\n\t\t\tratio *= FACTORIAL_169;\n\t\t\treturn 1.0 / ratio;\n\t\t}\n\t\treturn 1.0 / ( z * gamma( z+delta ) );\n\t}\n\tzgh = z + G - 0.5;\n\tif ( z + delta === z ) {\n\t\tif ( abs( delta / zgh ) < EPSILON ) {\n\t\t\tresult = exp( -delta );\n\t\t} else {\n\t\t\tresult = 1.0;\n\t\t}\n\t} else {\n\t\tif ( abs(delta) < 10.0 ) {\n\t\t\tresult = exp( ( 0.5-z ) * log1p( delta/zgh ) );\n\t\t} else {\n\t\t\tresult = pow( zgh / (zgh+delta), z-0.5 );\n\t\t}\n\t\t// Split up the calculation to avoid spurious overflow:\n\t\tresult *= lanczosSum( z ) / lanczosSum( z + delta );\n\t}\n\tresult *= pow( E / ( zgh+delta ), delta );\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default gammaDeltaRatioLanczos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006-7, 2013-14.\n* Copyright Paul A. Bristow 2007, 2013-14.\n* Copyright Nikhar Agrawal 2013-14.\n* Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport gamma from './../../../../base/special/gamma';\nimport factorial from './../../../../base/special/factorial';\nimport MAX_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial';\nimport gammaDeltaRatioLanczos from './gamma_delta_ratio_lanczos.js';\n\n\n// MAIN //\n\n/**\n* Computes the ratio of two gamma functions.\n*\n* ## Notes\n*\n* - Specifically, the function evaluates\n*\n* ```tex\n* \\frac{ \\Gamma( z ) }{ \\Gamma( z + \\delta ) }\n* ```\n*\n* @param {number} z - first gamma parameter\n* @param {number} delta - difference\n* @returns {number} gamma ratio\n*\n* @example\n* var y = gammaDeltaRatio( 2.0, 3.0 );\n* // returns ~0.042\n*\n* @example\n* var y = gammaDeltaRatio( 4.0, 0.5 );\n* // returns ~0.516\n*\n* @example\n* var y = gammaDeltaRatio( 100.0, 0.0 );\n* // returns 1.0\n*/\nfunction gammaDeltaRatio( z, delta ) {\n\tvar result;\n\tvar idelta;\n\tvar iz;\n\n\tif ( z <= 0.0 || z + delta <= 0.0 ) {\n\t\t// This isn't very sophisticated, or accurate, but it does work:\n\t\treturn gamma( z ) / gamma( z + delta );\n\t}\n\tidelta = floor( delta );\n\tif ( idelta === delta ) {\n\t\tiz = floor( z );\n\t\tif ( iz === z ) {\n\t\t\t// As both `z` and `delta` are integers, see if we can use a table lookup:\n\t\t\tif ( z <= MAX_FACTORIAL && ( z + delta <= MAX_FACTORIAL ) ) {\n\t\t\t\treturn factorial( iz - 1.0 ) / factorial( idelta + iz - 1.0 );\n\t\t\t}\n\t\t}\n\t\tif ( abs(delta) < 20.0 ) {\n\t\t\t// As `delta` is a small integer, we can use a finite product:\n\t\t\tif ( delta === 0.0 ) {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t\tif ( delta < 0.0 ) {\n\t\t\t\tz -= 1.0;\n\t\t\t\tresult = z;\n\t\t\t\tdelta += 1.0;\n\t\t\t\twhile ( delta !== 0.0 ) {\n\t\t\t\t\tz -= 1.0;\n\t\t\t\t\tresult *= z;\n\t\t\t\t\tdelta += 1.0;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tresult = 1.0 / z;\n\t\t\tdelta -= 1.0;\n\t\t\twhile ( delta !== 0.0 ) {\n\t\t\t\tz += 1.0;\n\t\t\t\tresult /= z;\n\t\t\t\tdelta -= 1.0;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn gammaDeltaRatioLanczos( z, delta );\n}\n\n\n// EXPORTS //\n\nexport default gammaDeltaRatio;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_cos.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport kernelCos from './../../../../base/special/kernel-cos';\nimport kernelSin from './../../../../base/special/kernel-sin';\nimport rempio2 from './../../../../base/special/rempio2';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\n\n\n// VARIABLES //\n\n// Scratch array for storing temporary values:\nvar buffer = [ 0.0, 0.0 ]; // WARNING: not thread safe\n\n// High word of π/4: 0x3fe921fb => 00111111111010010010000111111011\nvar HIGH_WORD_PIO4 = 0x3fe921fb|0; // asm type annotation\n\n// High word of 2^-27: 0x3e400000 => 00111110010000000000000000000000\nvar HIGH_WORD_TWO_NEG_27 = 0x3e400000|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes the cosine of a number.\n*\n* ## Method\n*\n* - Let \\\\(S\\\\), \\\\(C\\\\), and \\\\(T\\\\) denote the \\\\(\\sin\\\\), \\\\(\\cos\\\\), and \\\\(\\tan\\\\), respectively, on \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\).\n*\n* - Reduce the argument \\\\(x\\\\) to \\\\(y1+y2 = x-k\\pi/2\\\\) in \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\), and let \\\\(n = k \\mod 4\\\\).\n*\n* - We have\n*\n* | n | sin(x) | cos(x) | tan(x) |\n* | - | ------ | ------ | ------ |\n* | 0 | S | C | T |\n* | 1 | C | -S | -1/T |\n* | 2 | -S | -C | T |\n* | 3 | -C | S | -1/T |\n*\n* @param {number} x - input value (in radians)\n* @returns {number} cosine\n*\n* @example\n* var v = cos( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = cos( 3.141592653589793/4.0 );\n* // returns ~0.707\n*\n* @example\n* var v = cos( -3.141592653589793/6.0 );\n* // returns ~0.866\n*\n* @example\n* var v = cos( NaN );\n* // returns NaN\n*/\nfunction cos( x ) {\n\tvar ix;\n\tvar n;\n\n\tix = getHighWord( x );\n\tix &= ABS_MASK;\n\n\t// Case: |x| ~< pi/4\n\tif ( ix <= HIGH_WORD_PIO4 ) {\n\t\t// Case: x < 2**-27\n\t\tif ( ix < HIGH_WORD_TWO_NEG_27 ) {\n\t\t\treturn 1.0;\n\t\t}\n\t\treturn kernelCos( x, 0.0 );\n\t}\n\t// Case: cos(Inf or NaN) is NaN */\n\tif ( ix >= EXPONENT_MASK ) {\n\t\treturn NaN;\n\t}\n\t// Case: Argument reduction needed...\n\tn = rempio2( x, buffer );\n\tswitch ( n & 3 ) {\n\tcase 0:\n\t\treturn kernelCos( buffer[ 0 ], buffer[ 1 ] );\n\tcase 1:\n\t\treturn -kernelSin( buffer[ 0 ], buffer[ 1 ] );\n\tcase 2:\n\t\treturn -kernelCos( buffer[ 0 ], buffer[ 1 ] );\n\tdefault:\n\t\treturn kernelSin( buffer[ 0 ], buffer[ 1 ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default cos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport cos from './../../../../base/special/cos';\nimport sin from './../../../../base/special/sin';\nimport abs from './../../../../base/special/abs';\nimport copysign from './../../../../base/special/copysign';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// MAIN //\n\n/**\n* Computes the value of `sin(πx)`.\n*\n* ## Notes\n*\n* - `sin(-x) = -sin(x)`\n* - `sin(+n) = +0`, where `n` is a positive integer\n* - `sin(-n) = -sin(+n) = -0`, where `n` is a positive integer\n* - `cos(-x) = cos(x)`\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = sinpi( 0.0 );\n* // returns 0.0\n*\n* @example\n* var y = sinpi( 0.5 );\n* // returns 1.0\n*\n* @example\n* var y = sinpi( 0.9 );\n* // returns ~0.309\n*\n* @example\n* var y = sinpi( NaN );\n* // returns NaN\n*/\nfunction sinpi( x ) {\n\tvar ar;\n\tvar r;\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) ) {\n\t\treturn NaN;\n\t}\n\t// Argument reduction (reduce to [0,2))...\n\tr = x % 2.0; // sign preserving\n\tar = abs( r );\n\n\t// If `x` is an integer, the mod is an integer...\n\tif ( ar === 0.0 || ar === 1.0 ) {\n\t\treturn copysign( 0.0, r );\n\t}\n\tif ( ar < 0.25 ) {\n\t\treturn sin( PI*r );\n\t}\n\t// In each of the following, we further reduce to [-π/4,π/4)...\n\tif ( ar < 0.75 ) {\n\t\tar = 0.5 - ar;\n\t\treturn copysign( cos( PI*ar ), r );\n\t}\n\tif ( ar < 1.25 ) {\n\t\tr = copysign( 1.0, r ) - r;\n\t\treturn sin( PI*r );\n\t}\n\tif ( ar < 1.75 ) {\n\t\tar -= 1.5;\n\t\treturn -copysign( cos( PI*ar ), r );\n\t}\n\tr -= copysign( 2.0, r );\n\treturn sin( PI*r );\n}\n\n\n// EXPORTS //\n\nexport default sinpi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_lgamma_r.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport abs from './../../../../base/special/abs';\nimport ln from './../../../../base/special/ln';\nimport trunc from './../../../../base/special/trunc';\nimport sinpi from './../../../../base/special/sinpi';\nimport PI from '@stdlib/constants/float64/pi';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport polyvalA1 from './polyval_a1.js';\nimport polyvalA2 from './polyval_a2.js';\nimport polyvalR from './polyval_r.js';\nimport polyvalS from './polyval_s.js';\nimport polyvalT1 from './polyval_t1.js';\nimport polyvalT2 from './polyval_t2.js';\nimport polyvalT3 from './polyval_t3.js';\nimport polyvalU from './polyval_u.js';\nimport polyvalV from './polyval_v.js';\nimport polyvalW from './polyval_w.js';\n\n\n// VARIABLES //\n\nvar A1C = 7.72156649015328655494e-02; // 0x3FB3C467E37DB0C8\nvar A2C = 3.22467033424113591611e-01; // 0x3FD4A34CC4A60FAD\nvar RC = 1.0;\nvar SC = -7.72156649015328655494e-02; // 0xBFB3C467E37DB0C8\nvar T1C = 4.83836122723810047042e-01; // 0x3FDEF72BC8EE38A2\nvar T2C = -1.47587722994593911752e-01; // 0xBFC2E4278DC6C509\nvar T3C = 6.46249402391333854778e-02; // 0x3FB08B4294D5419B\nvar UC = -7.72156649015328655494e-02; // 0xBFB3C467E37DB0C8\nvar VC = 1.0;\nvar WC = 4.18938533204672725052e-01; // 0x3FDACFE390C97D69\nvar YMIN = 1.461632144968362245;\nvar TWO52 = 4503599627370496; // 2**52\nvar TWO56 = 72057594037927936; // 2**56\nvar TINY = 1.3877787807814457e-17;\nvar TC = 1.46163214496836224576e+00; // 0x3FF762D86356BE3F\nvar TF = -1.21486290535849611461e-01; // 0xBFBF19B9BCC38A42\nvar TT = -3.63867699703950536541e-18; // 0xBC50C7CAA48A971F => TT = -(tail of TF)\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of the gamma function.\n*\n* ## Method\n*\n* 1. Argument reduction for \\\\(0 < x \\leq 8\\\\). Since \\\\(\\Gamma(1+s) = s \\Gamma(s)\\\\), for \\\\(x \\in \\[0,8]\\\\), we may reduce \\\\(x\\\\) to a number in \\\\(\\[1.5,2.5]\\\\) by\n*\n* ```tex\n* \\operatorname{lgamma}(1+s) = \\ln(s) + \\operatorname{lgamma}(s)\n* ```\n*\n* For example,\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{lgamma}(7.3) &= \\ln(6.3) + \\operatorname{lgamma}(6.3) \\\\\n* &= \\ln(6.3 \\cdot 5.3) + \\operatorname{lgamma}(5.3) \\\\\n* &= \\ln(6.3 \\cdot 5.3 \\cdot 4.3 \\cdot 3.3 \\cdot2.3) + \\operatorname{lgamma}(2.3)\n* \\end{align*}\n* ```\n*\n* 2. Compute a polynomial approximation of \\\\(\\mathrm{lgamma}\\\\) around its minimum (\\\\(\\mathrm{ymin} = 1.461632144968362245\\\\)) to maintain monotonicity. On the interval \\\\(\\[\\mathrm{ymin} - 0.23, \\mathrm{ymin} + 0.27]\\\\) (i.e., \\\\(\\[1.23164,1.73163]\\\\)), we let \\\\(z = x - \\mathrm{ymin}\\\\) and use\n*\n* ```tex\n* \\operatorname{lgamma}(x) = -1.214862905358496078218 + z^2 \\cdot \\operatorname{poly}(z)\n* ```\n*\n* where \\\\(\\operatorname{poly}(z)\\\\) is a \\\\(14\\\\) degree polynomial.\n*\n* 3. Compute a rational approximation in the primary interval \\\\(\\[2,3]\\\\). Let \\\\( s = x - 2.0 \\\\). We can thus use the approximation\n*\n* ```tex\n* \\operatorname{lgamma}(x) = \\frac{s}{2} + s\\frac{\\operatorname{P}(s)}{\\operatorname{Q}(s)}\n* ```\n*\n* with accuracy\n*\n* ```tex\n* \\biggl|\\frac{\\mathrm{P}}{\\mathrm{Q}} - \\biggr(\\operatorname{lgamma}(x)-\\frac{s}{2}\\biggl)\\biggl| < 2^{-61.71}\n* ```\n*\n* The algorithms are based on the observation\n*\n* ```tex\n* \\operatorname{lgamma}(2+s) = s(1 - \\gamma) + \\frac{\\zeta(2) - 1}{2} s^2 - \\frac{\\zeta(3) - 1}{3} s^3 + \\ldots\n* ```\n*\n* where \\\\(\\zeta\\\\) is the zeta function and \\\\(\\gamma = 0.5772156649...\\\\) is the Euler-Mascheroni constant, which is very close to \\\\(0.5\\\\).\n*\n* 4. For \\\\(x \\geq 8\\\\),\n*\n* ```tex\n* \\operatorname{lgamma}(x) \\approx \\biggl(x-\\frac{1}{2}\\biggr) \\ln(x) - x + \\frac{\\ln(2\\pi)}{2} + \\frac{1}{12x} - \\frac{1}{360x^3} + \\ldots\n* ```\n*\n* which can be expressed\n*\n* ```tex\n* \\operatorname{lgamma}(x) \\approx \\biggl(x-\\frac{1}{2}\\biggr)(\\ln(x)-1)-\\frac{\\ln(2\\pi)-1}{2} + \\ldots\n* ```\n*\n* Let \\\\(z = \\frac{1}{x}\\\\). We can then use the approximation\n*\n* ```tex\n* f(z) = \\operatorname{lgamma}(x) - \\biggl(x-\\frac{1}{2}\\biggr)(\\ln(x)-1)\n* ```\n*\n* by\n*\n* ```tex\n* w = w_0 + w_1 z + w_2 z^3 + w_3 z^5 + \\ldots + w_6 z^{11}\n* ```\n*\n* where\n*\n* ```tex\n* |w - f(z)| < 2^{-58.74}\n* ```\n*\n* 5. For negative \\\\(x\\\\), since\n*\n* ```tex\n* -x \\Gamma(-x) \\Gamma(x) = \\frac{\\pi}{\\sin(\\pi x)}\n* ```\n*\n* where \\\\(\\Gamma\\\\) is the gamma function, we have\n*\n* ```tex\n* \\Gamma(x) = \\frac{\\pi}{\\sin(\\pi x)(-x)\\Gamma(-x)}\n* ```\n*\n* Since \\\\(\\Gamma(-x)\\\\) is positive,\n*\n* ```tex\n* \\operatorname{sign}(\\Gamma(x)) = \\operatorname{sign}(\\sin(\\pi x))\n* ```\n*\n* for \\\\(x < 0\\\\). Hence, for \\\\(x < 0\\\\),\n*\n* ```tex\n* \\mathrm{signgam} = \\operatorname{sign}(\\sin(\\pi x))\n* ```\n*\n* and\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{lgamma}(x) &= \\ln(|\\Gamma(x)|) \\\\\n* &= \\ln\\biggl(\\frac{\\pi}{|x \\sin(\\pi x)|}\\biggr) - \\operatorname{lgamma}(-x)\n* \\end{align*}\n* ```\n*\n* \n*\n* Note that one should avoid computing \\\\(\\pi (-x)\\\\) directly in the computation of \\\\(\\sin(\\pi (-x))\\\\).\n*\n* \n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{lgamma}(2+s) &\\approx s (1-\\gamma) & \\mathrm{for\\ tiny\\ s} \\\\\n* \\operatorname{lgamma}(x) &\\approx -\\ln(x) & \\mathrm{for\\ tiny\\ x} \\\\\n* \\operatorname{lgamma}(1) &= 0 & \\\\\n* \\operatorname{lgamma}(2) &= 0 & \\\\\n* \\operatorname{lgamma}(0) &= \\infty & \\\\\n* \\operatorname{lgamma}(\\infty) &= \\infty & \\\\\n* \\operatorname{lgamma}(-\\mathrm{integer}) &= \\pm \\infty\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = gammaln( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = gammaln( 2.0 );\n* // returns 0.0\n*\n* @example\n* var v = gammaln( 4.0 );\n* // returns ~1.792\n*\n* @example\n* var v = gammaln( -0.5 );\n* // returns ~1.266\n*\n* @example\n* var v = gammaln( 0.5 );\n* // returns ~0.572\n*\n* @example\n* var v = gammaln( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = gammaln( NaN );\n* // returns NaN\n*/\nfunction gammaln( x ) {\n\tvar isNegative;\n\tvar nadj;\n\tvar flg;\n\tvar p3;\n\tvar p2;\n\tvar p1;\n\tvar p;\n\tvar q;\n\tvar t;\n\tvar w;\n\tvar y;\n\tvar z;\n\tvar r;\n\n\t// Special cases: NaN, +-infinity\n\tif ( isnan( x ) || isInfinite( x ) ) {\n\t\treturn x;\n\t}\n\t// Special case: 0\n\tif ( x === 0.0 ) {\n\t\treturn PINF;\n\t}\n\tif ( x < 0.0 ) {\n\t\tisNegative = true;\n\t\tx = -x;\n\t} else {\n\t\tisNegative = false;\n\t}\n\t// If |x| < 2**-56, return -ln(|x|)\n\tif ( x < TINY ) {\n\t\treturn -ln( x );\n\t}\n\tif ( isNegative ) {\n\t\t// If |x| >= 2**52, must be -integer\n\t\tif ( x >= TWO52 ) {\n\t\t\treturn PINF;\n\t\t}\n\t\tt = sinpi( x );\n\t\tif ( t === 0.0 ) {\n\t\t\treturn PINF;\n\t\t}\n\t\tnadj = ln( PI / abs( t*x ) );\n\t}\n\t// If x equals 1 or 2, return 0\n\tif ( x === 1.0 || x === 2.0 ) {\n\t\treturn 0.0;\n\t}\n\t// If x < 2, use lgamma(x) = lgamma(x+1) - log(x)\n\tif ( x < 2.0 ) {\n\t\tif ( x <= 0.9 ) {\n\t\t\tr = -ln( x );\n\n\t\t\t// 0.7316 <= x <= 0.9\n\t\t\tif ( x >= ( YMIN - 1.0 + 0.27 ) ) {\n\t\t\t\ty = 1.0 - x;\n\t\t\t\tflg = 0;\n\t\t\t}\n\t\t\t// 0.2316 <= x < 0.7316\n\t\t\telse if ( x >= (YMIN - 1.0 - 0.27) ) {\n\t\t\t\ty = x - (TC - 1.0);\n\t\t\t\tflg = 1;\n\t\t\t}\n\t\t\t// 0 < x < 0.2316\n\t\t\telse {\n\t\t\t\ty = x;\n\t\t\t\tflg = 2;\n\t\t\t}\n\t\t} else {\n\t\t\tr = 0.0;\n\n\t\t\t// 1.7316 <= x < 2\n\t\t\tif ( x >= (YMIN + 0.27) ) {\n\t\t\t\ty = 2.0 - x;\n\t\t\t\tflg = 0;\n\t\t\t}\n\t\t\t// 1.2316 <= x < 1.7316\n\t\t\telse if ( x >= (YMIN - 0.27) ) {\n\t\t\t\ty = x - TC;\n\t\t\t\tflg = 1;\n\t\t\t}\n\t\t\t// 0.9 < x < 1.2316\n\t\t\telse {\n\t\t\t\ty = x - 1.0;\n\t\t\t\tflg = 2;\n\t\t\t}\n\t\t}\n\t\tswitch ( flg ) { // eslint-disable-line default-case\n\t\tcase 0:\n\t\t\tz = y * y;\n\t\t\tp1 = A1C + (z*polyvalA1( z ));\n\t\t\tp2 = z * (A2C + (z*polyvalA2( z )));\n\t\t\tp = (y*p1) + p2;\n\t\t\tr += ( p - (0.5*y) );\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tz = y * y;\n\t\t\tw = z * y;\n\t\t\tp1 = T1C + (w*polyvalT1( w ));\n\t\t\tp2 = T2C + (w*polyvalT2( w ));\n\t\t\tp3 = T3C + (w*polyvalT3( w ));\n\t\t\tp = (z*p1) - (TT - (w*(p2+(y*p3))));\n\t\t\tr += ( TF + p );\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tp1 = y * (UC + (y*polyvalU( y )));\n\t\t\tp2 = VC + (y*polyvalV( y ));\n\t\t\tr += (-0.5*y) + (p1/p2);\n\t\t\tbreak;\n\t\t}\n\t}\n\t// 2 <= x < 8\n\telse if ( x < 8.0 ) {\n\t\tflg = trunc( x );\n\t\ty = x - flg;\n\t\tp = y * (SC + (y*polyvalS( y )));\n\t\tq = RC + (y*polyvalR( y ));\n\t\tr = (0.5*y) + (p/q);\n\t\tz = 1.0; // gammaln(1+s) = ln(s) + gammaln(s)\n\t\tswitch ( flg ) { // eslint-disable-line default-case\n\t\tcase 7:\n\t\t\tz *= y + 6.0;\n\n\t\t\t/* Falls through */\n\t\tcase 6:\n\t\t\tz *= y + 5.0;\n\n\t\t\t/* Falls through */\n\t\tcase 5:\n\t\t\tz *= y + 4.0;\n\n\t\t\t/* Falls through */\n\t\tcase 4:\n\t\t\tz *= y + 3.0;\n\n\t\t\t/* Falls through */\n\t\tcase 3:\n\t\t\tz *= y + 2.0;\n\t\t\tr += ln( z );\n\t\t}\n\t}\n\t// 8 <= x < 2**56\n\telse if ( x < TWO56 ) {\n\t\tt = ln( x );\n\t\tz = 1.0 / x;\n\t\ty = z * z;\n\t\tw = WC + (z*polyvalW( y ));\n\t\tr = ((x-0.5)*(t-1.0)) + w;\n\t}\n\t// 2**56 <= x <= Inf\n\telse {\n\t\tr = x * ( ln(x)-1.0 );\n\t}\n\tif ( isNegative ) {\n\t\tr = nadj - r;\n\t}\n\treturn r;\n}\n\n\n// EXPORTS //\n\nexport default gammaln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.06735230105312927;\n\t}\n\treturn 0.06735230105312927 + (x * (0.007385550860814029 + (x * (0.0011927076318336207 + (x * (0.00022086279071390839 + (x * 0.000025214456545125733))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.020580808432516733;\n\t}\n\treturn 0.020580808432516733 + (x * (0.0028905138367341563 + (x * (0.0005100697921535113 + (x * (0.00010801156724758394 + (x * 0.000044864094961891516))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.032788541075985965;\n\t}\n\treturn -0.032788541075985965 + (x * (0.006100538702462913 + (x * (-0.0014034646998923284 + (x * 0.00031563207090362595))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.01797067508118204;\n\t}\n\treturn 0.01797067508118204 + (x * (-0.0036845201678113826 + (x * (0.000881081882437654 + (x * -0.00031275416837512086))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.010314224129834144;\n\t}\n\treturn -0.010314224129834144 + (x * (0.0022596478090061247 + (x * (-0.0005385953053567405 + (x * 0.0003355291926355191))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.6328270640250934;\n\t}\n\treturn 0.6328270640250934 + (x * (1.4549225013723477 + (x * (0.9777175279633727 + (x * (0.22896372806469245 + (x * 0.013381091853678766))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2.4559779371304113;\n\t}\n\treturn 2.4559779371304113 + (x * (2.128489763798934 + (x * (0.7692851504566728 + (x * (0.10422264559336913 + (x * 0.003217092422824239))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.21498241596060885;\n\t}\n\treturn 0.21498241596060885 + (x * (0.325778796408931 + (x * (0.14635047265246445 + (x * (0.02664227030336386 + (x * (0.0018402845140733772 + (x * 0.00003194753265841009))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.3920053346762105;\n\t}\n\treturn 1.3920053346762105 + (x * (0.7219355475671381 + (x * (0.17193386563280308 + (x * (0.01864591917156529 + (x * (0.0007779424963818936 + (x * 0.000007326684307446256))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.08333333333333297;\n\t}\n\treturn 0.08333333333333297 + (x * (-0.0027777777772877554 + (x * (0.0007936505586430196 + (x * (-0.00059518755745034 + (x * (0.0008363399189962821 + (x * -0.0016309293409657527))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_erf.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport exp from './../../../../base/special/exp';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport polyvalPP from './polyval_pp.js';\nimport polyvalQQ from './polyval_qq.js';\nimport polyvalPA from './polyval_pa.js';\nimport polyvalQA from './polyval_qa.js';\nimport polyvalRA from './polyval_ra.js';\nimport polyvalSA from './polyval_sa.js';\nimport polyvalRB from './polyval_rb.js';\nimport polyvalSB from './polyval_sb.js';\n\n\n// VARIABLES //\n\nvar TINY = 1.0e-300;\n\n// 2**-56 = 1/(2**56) = 1/72057594037927940\nvar SMALL = 1.3877787807814457e-17;\n\nvar ERX = 8.45062911510467529297e-1; // 0x3FEB0AC1, 0x60000000\n\nvar PPC = 1.28379167095512558561e-1; // 0x3FC06EBA, 0x8214DB68\nvar QQC = 1.0;\n\nvar PAC = -2.36211856075265944077e-3; // 0xBF6359B8, 0xBEF77538\nvar QAC = 1.0;\n\nvar RAC = -9.86494403484714822705e-3; // 0xBF843412, 0x600D6435\nvar SAC = 1.0;\n\nvar RBC = -9.86494292470009928597e-3; // 0xBF843412, 0x39E86F4A\nvar SBC = 1.0;\n\n\n// MAIN //\n\n/**\n* Evaluates the complementary error function.\n*\n* ```tex\n* \\operatorname{erf}(x) = \\frac{2}{\\sqrt{\\pi}} \\int^{x}_{0} e^{-t^2}\\ \\mathrm{dt}\n* ```\n*\n* Note that\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erfc}(x) &= 1 - \\operatorname{erf}(x) \\\\\n* \\operatorname{erf}(-x) &= -\\operatorname{erf}(x) \\\\\n* \\operatorname{erfc}(-x) &= 2 - \\operatorname{erfc}(x)\n* \\end{align*}\n* ```\n*\n* ## Method\n*\n* 1. For \\\\(|x| \\in [0, 0.84375)\\\\),\n*\n* ```tex\n* \\operatorname{erf}(x) = x + x \\cdot \\operatorname{R}(x^2)\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* 1 - \\operatorname{erf}(x) & \\textrm{if}\\ x \\in (-.84375,0.25) \\\\\n* 0.5 + ((0.5-x)-x \\mathrm{R}) & \\textrm{if}\\ x \\in [0.25,0.84375)\n* \\end{cases}\n* ```\n*\n* where \\\\(R = P/Q\\\\) and where \\\\(P\\\\) is an odd polynomial of degree \\\\(8\\\\) and \\\\(Q\\\\) is an odd polynomial of degree \\\\(10\\\\).\n*\n* ```tex\n* \\biggl| \\mathrm{R} - \\frac{\\operatorname{erf}(x)-x}{x} \\biggr| \\leq 2^{-57.90}\n* ```\n*\n* \n*\n* The formula is derived by noting\n*\n* ```tex\n* \\operatorname{erf}(x) = \\frac{2}{\\sqrt{\\pi}}\\biggl(x - \\frac{x^3}{3} + \\frac{x^5}{10} - \\frac{x^7}{42} + \\ldots \\biggr)\n* ```\n*\n* and that\n*\n* ```tex\n* \\frac{2}{\\sqrt{\\pi}} = 1.128379167095512573896158903121545171688\n* ```\n*\n* is close to unity. The interval is chosen because the fix point of \\\\(\\operatorname{erf}(x)\\\\) is near \\\\(0.6174\\\\) (i.e., \\\\(\\operatorname{erf(x)} = x\\\\) when \\\\(x\\\\) is near \\\\(0.6174\\\\)), and, by some experiment, \\\\(0.84375\\\\) is chosen to guarantee the error is less than one ulp for \\\\(\\operatorname{erf}(x)\\\\).\n*\n* \n*\n* 2. For \\\\(|x| \\in [0.84375,1.25)\\\\), let \\\\(s = |x|-1\\\\), and \\\\(c = 0.84506291151\\\\) rounded to single (\\\\(24\\\\) bits)\n*\n* ```tex\n* \\operatorname{erf}(x) = \\operatorname{sign}(x) \\cdot \\biggl(c + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\\biggr)\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* (1-c) - \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)} & \\textrm{if}\\ x > 0 \\\\\n* 1 + \\biggl(c + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\\biggr) & \\textrm{if}\\ x < 0\n* \\end{cases}\n* ```\n*\n* where\n*\n* ```tex\n* \\biggl|\\frac{\\mathrm{P1}}{\\mathrm{Q1}} - (\\operatorname{erf}(|x|)-c)\\biggr| \\leq 2^{-59.06}\n* ```\n*\n* \n*\n* Here, we use the Taylor series expansion at \\\\(x = 1\\\\)\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(1+s) &= \\operatorname{erf}(1) + s\\cdot \\operatorname{poly}(s) \\\\\n* &= 0.845.. + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\n* \\end{align*}\n* ```\n*\n* using a rational approximation to approximate\n*\n* ```tex\n* \\operatorname{erf}(1+s) - (c = (\\mathrm{single})0.84506291151)\n* ```\n*\n* \n*\n* Note that, for \\\\(x \\in [0.84375,1.25)\\\\), \\\\(|\\mathrm{P1}/\\mathrm{Q1}| < 0.078\\\\), where\n*\n* - \\\\(\\operatorname{P1}(s)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(s\\\\)\n* - \\\\(\\operatorname{Q1}(s)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(s\\\\)\n*\n* 3. For \\\\(x \\in [1.25,1/0.35)\\\\),\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erfc}(x) &= \\frac{1}{x}e^{-x^2-0.5625+(\\mathrm{R1}/\\mathrm{S1})} \\\\\n* \\operatorname{erf}(x) &= 1 - \\operatorname{erfc}(x)\n* \\end{align*}\n* ```\n*\n* where\n*\n* - \\\\(\\operatorname{R1}(z)\\\\) is a degree \\\\(7\\\\) polynomial in \\\\(z\\\\), where \\\\(z = 1/x^2\\\\)\n* - \\\\(\\operatorname{S1}(z)\\\\) is a degree \\\\(8\\\\) polynomial in \\\\(z\\\\)\n*\n* 4. For \\\\(x \\in [1/0.35,28)\\\\),\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* \\frac{1}{x} e^{-x^2-0.5625+(\\mathrm{R2}/\\mathrm{S2})} & \\textrm{if}\\ x > 0 \\\\\n* 2.0 - \\frac{1}{x} e^{-x^2-0.5625+(\\mathrm{R2}/\\mathrm{S2})} & \\textrm{if}\\ -6 < x < 0 \\\\\n* 2.0 - \\mathrm{tiny} & \\textrm{if}\\ x \\leq -6\n* \\end{cases}\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erf}(x) = \\begin{cases}\n* \\operatorname{sign}(x) \\cdot (1.0 - \\operatorname{erfc}(x)) & \\textrm{if}\\ x < 6 \\\\\n* \\operatorname{sign}(x) \\cdot (1.0 - \\mathrm{tiny}) & \\textrm{otherwise}\n* \\end{cases}\n* ```\n*\n* where\n*\n* - \\\\(\\operatorname{R2}(z)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(z\\\\), where \\\\(z = 1/x^2\\\\)\n* - \\\\(\\operatorname{S2}(z)\\\\) is a degree \\\\(7\\\\) polynomial in \\\\(z\\\\)\n*\n* 5. For \\\\(x \\in [28, \\infty)\\\\),\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(x) &= \\operatorname{sign}(x) \\cdot (1 - \\mathrm{tiny}) & \\textrm{(raise inexact)}\n* \\end{align*}\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* \\mathrm{tiny} \\cdot \\mathrm{tiny} & \\textrm{if}\\ x > 0\\ \\textrm{(raise underflow)} \\\\\n* 2 - \\mathrm{tiny} & \\textrm{if}\\ x < 0\n* \\end{cases}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(0) &= 0 \\\\\n* \\operatorname{erf}(-0) &= -0 \\\\\n* \\operatorname{erf}(\\infty) &= 1 \\\\\n* \\operatorname{erf}(-\\infty) &= -1 \\\\\n* \\operatorname{erfc}(0) &= 1 \\\\\n* \\operatorname{erfc}(\\infty) &= 0 \\\\\n* \\operatorname{erfc}(-\\infty) &= 2 \\\\\n* \\operatorname{erf}(\\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{erfc}(\\mathrm{NaN}) &= \\mathrm{NaN}\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - To compute \\\\(\\exp(-x^2-0.5625+(\\mathrm{R}/\\mathrm{S}))\\\\), let \\\\(s\\\\) be a single precision number and \\\\(s := x\\\\); then\n*\n* ```tex\n* -x^2 = -s^2 + (s-x)(s+x)\n* ```\n*\n* and\n*\n* ```tex\n* e^{-x^2-0.5626+(\\mathrm{R}/\\mathrm{S})} = e^{-s^2-0.5625} e^{(s-x)(s+x)+(\\mathrm{R}/\\mathrm{S})}\n* ```\n*\n* - `#4` and `#5` make use of the asymptotic series\n*\n* ```tex\n* \\operatorname{erfc}(x) \\approx \\frac{e^{-x^2}}{x\\sqrt{\\pi}} (1 + \\operatorname{poly}(1/x^2))\n* ```\n*\n* We use a rational approximation to approximate\n*\n* ```tex\n* g(s) = f(1/x^2) = \\ln(\\operatorname{erfc}(x) \\cdot x) - x^2 + 0.5625\n* ```\n*\n* - The error bound for \\\\(\\mathrm{R1}/\\mathrm{S1}\\\\) is\n*\n* ```tex\n* |\\mathrm{R1}/\\mathrm{S1} - f(x)| < 2^{-62.57}\n* ```\n*\n* and for \\\\(\\mathrm{R2}/\\mathrm{S2}\\\\) is\n*\n* ```tex\n* |\\mathrm{R2}/\\mathrm{S2} - f(x)| < 2^{-61.52}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = erfc( 2.0 );\n* // returns ~0.0047\n*\n* @example\n* var y = erfc( -1.0 );\n* // returns ~1.8427\n*\n* @example\n* var y = erfc( 0.0 );\n* // returns 1.0\n*\n* @example\n* var y = erfc( Infinity );\n* // returns 0.0\n*\n* @example\n* var y = erfc( -Infinity );\n* // returns 2.0\n*\n* @example\n* var y = erfc( NaN );\n* // returns NaN\n*/\nfunction erfc( x ) {\n\tvar sign;\n\tvar ax;\n\tvar z;\n\tvar r;\n\tvar s;\n\tvar y;\n\tvar p;\n\tvar q;\n\n\t// Special case: NaN\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\t// Special case: +infinity\n\tif ( x === PINF ) {\n\t\treturn 0.0;\n\t}\n\t// Special case: -infinity\n\tif ( x === NINF ) {\n\t\treturn 2.0;\n\t}\n\t// Special case: +-0\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tsign = true;\n\t\tax = -x;\n\t} else {\n\t\tsign = false;\n\t\tax = x;\n\t}\n\t// |x| < 0.84375\n\tif ( ax < 0.84375 ) {\n\t\tif ( ax < SMALL ) {\n\t\t\treturn 1.0 - x; // raise inexact\n\t\t}\n\t\tz = x * x;\n\t\tr = PPC + ( z*polyvalPP( z ) );\n\t\ts = QQC + ( z*polyvalQQ( z ) );\n\t\ty = r / s;\n\n\t\t// x < 1/4\n\t\tif ( x < 0.25 ) {\n\t\t\treturn 1.0 - ( x + (x*y) );\n\t\t}\n\t\tr = x * y;\n\t\tr += x - 0.5;\n\t\treturn 0.5 - r;\n\t}\n\t// 0.84375 <= |x| < 1.25\n\tif ( ax < 1.25 ) {\n\t\ts = ax - 1.0;\n\t\tp = PAC + ( s*polyvalPA( s ) );\n\t\tq = QAC + ( s*polyvalQA( s ) );\n\t\tif ( sign ) {\n\t\t\treturn 1.0 + ERX + (p/q);\n\t\t}\n\t\treturn 1.0 - ERX - (p/q);\n\t}\n\t// |x| < 28\n\tif ( ax < 28.0 ) {\n\t\ts = 1.0 / (ax*ax);\n\n\t\t// |x| < 1/0.35 ~ 2.857143\n\t\tif ( ax < 2.857142857142857 ) {\n\t\t\tr = RAC + ( s*polyvalRA( s ) );\n\t\t\ts = SAC + ( s*polyvalSA( s ) );\n\t\t}\n\t\t// |x| >= 1/0.35 ~ 2.857143\n\t\telse {\n\t\t\t// x < -6\n\t\t\tif ( x < -6.0 ) {\n\t\t\t\treturn 2.0 - TINY; // raise inexact\n\t\t\t}\n\t\t\tr = RBC + ( s*polyvalRB( s ) );\n\t\t\ts = SBC + ( s*polyvalSB( s ) );\n\t\t}\n\t\tz = setLowWord( ax, 0 ); // pseudo-single (20-bit) precision x\n\t\tr = exp( -(z*z) - 0.5625 ) * exp( ((z-ax)*(z+ax)) + (r/s) );\n\t\tif ( sign ) {\n\t\t\treturn 2.0 - (r/ax);\n\t\t}\n\t\treturn r/ax;\n\t}\n\tif ( sign ) {\n\t\treturn 2.0 - TINY; // raise inexact; ~2\n\t}\n\treturn TINY * TINY; // raise inexact; ~0\n}\n\n\n// EXPORTS //\n\nexport default erfc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.3250421072470015;\n\t}\n\treturn -0.3250421072470015 + (x * (-0.02848174957559851 + (x * (-0.005770270296489442 + (x * -0.000023763016656650163))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.39791722395915535;\n\t}\n\treturn 0.39791722395915535 + (x * (0.0650222499887673 + (x * (0.005081306281875766 + (x * (0.00013249473800432164 + (x * -0.000003960228278775368))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.41485611868374833;\n\t}\n\treturn 0.41485611868374833 + (x * (-0.3722078760357013 + (x * (0.31834661990116175 + (x * (-0.11089469428239668 + (x * (0.035478304325618236 + (x * -0.002166375594868791))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.10642088040084423;\n\t}\n\treturn 0.10642088040084423 + (x * (0.540397917702171 + (x * (0.07182865441419627 + (x * (0.12617121980876164 + (x * (0.01363708391202905 + (x * 0.011984499846799107))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.6938585727071818;\n\t}\n\treturn -0.6938585727071818 + (x * (-10.558626225323291 + (x * (-62.375332450326006 + (x * (-162.39666946257347 + (x * (-184.60509290671104 + (x * (-81.2874355063066 + (x * -9.814329344169145))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 19.651271667439257;\n\t}\n\treturn 19.651271667439257 + (x * (137.65775414351904 + (x * (434.56587747522923 + (x * (645.3872717332679 + (x * (429.00814002756783 + (x * (108.63500554177944 + (x * (6.570249770319282 + (x * -0.0604244152148581))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.799283237680523;\n\t}\n\treturn -0.799283237680523 + (x * (-17.757954917754752 + (x * (-160.63638485582192 + (x * (-637.5664433683896 + (x * (-1025.0951316110772 + (x * -483.5191916086514))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 30.33806074348246;\n\t}\n\treturn 30.33806074348246 + (x * (325.7925129965739 + (x * (1536.729586084437 + (x * (3199.8582195085955 + (x * (2553.0504064331644 + (x * (474.52854120695537 + (x * -22.44095244658582))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\n\n\n// MAIN //\n\n/**\n* Calculates the power term prefix `(z^a)(e^-z)` used in the non-normalized incomplete gammas.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} z - function parameter\n* @returns {number} power term prefix\n*/\nfunction fullIGammaPrefix( a, z ) {\n\tvar prefix;\n\tvar alz;\n\n\talz = a * ln( z );\n\tif ( z >= 1.0 ) {\n\t\tif ( ( alz < MAX_LN ) && ( -z > MIN_LN ) ) {\n\t\t\tprefix = pow( z, a ) * exp( -z );\n\t\t}\n\t\telse if ( a >= 1.0 ) {\n\t\t\tprefix = pow( z / exp(z/a), a );\n\t\t}\n\t\telse {\n\t\t\tprefix = exp( alz - z );\n\t\t}\n\t}\n\telse {\n\t\t/* eslint-disable no-lonely-if */\n\t\tif ( alz > MIN_LN ) {\n\t\t\tprefix = pow( z, a ) * exp( -z );\n\t\t}\n\t\telse if ( z/a < MAX_LN ) {\n\t\t\tprefix = pow( z / exp(z/a), a );\n\t\t} else {\n\t\t\tprefix = exp( alz - z );\n\t\t}\n\t}\n\treturn prefix;\n}\n\n\n// EXPORTS //\n\nexport default fullIGammaPrefix;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial using double-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} c - polynomial coefficients sorted in ascending degree\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*\n* @example\n* var v = evalpoly( [ 3.0, 2.0, 1.0 ], 10.0 ); // 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*/\nfunction evalpoly( c, x ) {\n\tvar p;\n\tvar i;\n\n\ti = c.length;\n\tif ( i < 2 || x === 0.0 ) {\n\t\tif ( i === 0 ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\treturn c[ 0 ];\n\t}\n\ti -= 1;\n\tp = ( c[ i ] * x ) + c[ i-1 ];\n\ti -= 2;\n\twhile ( i >= 0 ) {\n\t\tp = ( p * x ) + c[ i ];\n\t\ti -= 1;\n\t}\n\treturn p;\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Fcn from '@stdlib/function/ctor';\nimport evalpoly from './main.js';\n\n\n// MAIN //\n\n/**\n* Generates a function for evaluating a polynomial using double-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The compiled function uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} c - polynomial coefficients sorted in ascending degree\n* @returns {Function} function for evaluating a polynomial\n*\n* @example\n* var polyval = factory( [ 3.0, 2.0, 1.0 ] );\n*\n* var v = polyval( 10.0 ); // => 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* v = polyval( 5.0 ); // => 3*5^0 + 2*5^1 + 1*5^2\n* // returns 38.0\n*/\nfunction factory( c ) {\n\tvar f;\n\tvar n;\n\tvar m;\n\tvar i;\n\n\t// Avoid exceeding the maximum stack size on V8 :(. Note that the choice of `500` was empirically determined...\n\tif ( c.length > 500 ) {\n\t\treturn polyval;\n\t}\n\t// Code generation. Start with the function definition...\n\tf = 'return function evalpoly(x){';\n\n\t// Create the function body...\n\tn = c.length;\n\n\t// If no coefficients, the function always returns 0...\n\tif ( n === 0 ) {\n\t\tf += 'return 0.0;';\n\t}\n\t// If only one coefficient, the function always returns that coefficient...\n\telse if ( n === 1 ) {\n\t\tf += 'return ' + c[ 0 ] + ';';\n\t}\n\t// If more than one coefficient, apply Horner's method...\n\telse {\n\t\t// If `x == 0`, return the first coefficient...\n\t\tf += 'if(x===0.0){return ' + c[ 0 ] + ';}';\n\n\t\t// Otherwise, evaluate the polynomial...\n\t\tf += 'return ' + c[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += c[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < m-1; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\t}\n\t// Close the function:\n\tf += '}';\n\n\t// Add a source directive for debugging:\n\tf += '//# sourceURL=evalpoly.factory.js';\n\n\t// Create the function in the global scope:\n\treturn ( new Fcn( f ) )();\n\n\t/*\n\t* function evalpoly( x ) {\n\t* if ( x === 0.0 ) {\n\t* return c[ 0 ];\n\t* }\n\t* return c[0]+x*(c[1]+x*(c[2]+x*(c[3]+...+x*(c[n-2]+x*c[n-1]))));\n\t* }\n\t*/\n\n\t/**\n\t* Evaluates a polynomial.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a polynomial\n\t* @returns {number} evaluated polynomial\n\t*/\n\tfunction polyval( x ) {\n\t\treturn evalpoly( c, x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a polynomial using double-precision floating-point arithmetic.\n*\n* @module @stdlib/math/base/tools/evalpoly\n*\n* @example\n* import evalpoly from '@stdlib/math/base/tools/evalpoly';\n*\n* var v = evalpoly( [ 3.0, 2.0, 1.0 ], 10.0 ); // 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* @example\n* import evalpoly from '@stdlib/math/base/tools/evalpoly';\n*\n* var polyval = evalpoly.factory( [ 3.0, 2.0, 1.0 ] );\n*\n* var v = polyval( 10.0 ); // => 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* v = polyval( 5.0 ); // => 3*5^0 + 2*5^1 + 1*5^2\n* // returns 38.0\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\n\n\n// VARIABLES //\n\nvar MAX_TERMS = 1000000;\n\n\n// MAIN //\n\n/**\n* Sum the elements of the series given by the supplied function.\n*\n* @param {Function} generator - series function\n* @param {Object} [options] - function options\n* @param {PositiveInteger} [options.maxTerms=1000000] - maximum number of terms to be added\n* @param {PositiveNumber} [options.tolerance=2.22e-16] - further terms are only added as long as the next term is greater than current term times the tolerance\n* @param {number} [options.initialValue=0] - initial value of the resulting sum\n* @returns {number} sum of all series terms\n*\n* @example\n* var gen = geometricSeriesClosure( 0.9 )\n* var out = sumSeries( gen );\n* // returns 10.0\n*\n* function geometricSeriesClosure( x ) {\n* var exponent = -1;\n* return function() {\n* exponent += 1;\n* return Math.pow( x, exponent );\n* };\n* }\n*/\nfunction sumSeries( generator, options ) {\n\tvar tolerance;\n\tvar nextTerm;\n\tvar counter;\n\tvar result;\n\tvar opts;\n\n\topts = {};\n\n\tif ( arguments.length > 1 ) {\n\t\topts = options;\n\t}\n\ttolerance = opts.tolerance || EPS;\n\tcounter = opts.maxTerms || MAX_TERMS;\n\tresult = opts.initialValue || 0;\n\n\t// Repeatedly call function...\n\tdo {\n\t\tnextTerm = generator();\n\t\tresult += nextTerm;\n\t}\n\twhile ( ( abs(tolerance * result) < abs(nextTerm) ) && --counter ); // eslint-disable-line no-plusplus\n\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default sumSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Sum the elements of the series given by the supplied function.\n*\n* @module @stdlib/math/base/tools/sum-series\n*\n* @example\n* import sumSeries from '@stdlib/math/base/tools/sum-series';\n*\n* var gen = geometricSeriesClosure( 0.9 )\n* var out = sumSeries( gen );\n* // returns 10\n*\n* function geometricSeriesClosure( x ) {\n* var exponent = -1;\n* return function() {\n* exponent += 1;\n* return Math.pow( x, exponent );\n* };\n* }\n*/\n\n// MODULES //\n\nimport hasGeneratorSupport from '@stdlib/assert/has-generator-support';\nimport generator from './generators.js';\nimport basic from './basic.js';\n\n\n// MAIN //\n\nvar sumSeries;\nif ( hasGeneratorSupport() ) {\n\tsumSeries = generator;\n} else {\n\tsumSeries = basic;\n}\n\n\n// EXPORTS //\n\nexport default sumSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\n\n\n// VARIABLES //\n\nvar MAX_TERMS = 1000000;\n\n\n// MAIN //\n\n/**\n* Sum the elements of the series given by the supplied function.\n*\n* @param {Function} generator - series function\n* @param {Object} [options] - function options\n* @param {PositiveInteger} [options.maxTerms=1000000] - maximum number of terms to be added\n* @param {PositiveNumber} [options.tolerance=2.22e-16] - further terms are only added as long as the next term is greater than current term times the tolerance\n* @param {number} [options.initialValue=0] - initial value of the resulting sum\n* @returns {number} sum of all series terms\n*\n* @example\n* var gen = geometricSeriesGenerator( 0.9 );\n* var out = sumSeries( gen );\n* // returns 10.0\n*\n* function* geometricSeriesGenerator( x ) {\n* var exponent = 0;\n* while ( true ) {\n* yield Math.pow( x, exponent );\n* exponent += 1;\n* }\n* }\n*/\nfunction sumSeries( generator, options ) {\n\tvar isgenerator;\n\tvar tolerance;\n\tvar nextTerm;\n\tvar counter;\n\tvar result;\n\tvar opts;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\topts = options;\n\t}\n\ttolerance = opts.tolerance || EPS;\n\tcounter = opts.maxTerms || MAX_TERMS;\n\tresult = opts.initialValue || 0;\n\n\tisgenerator = typeof generator.next === 'function';\n\tif ( isgenerator === true ) {\n\t\t// Case A: Iterate over generator object created by a generator function...\n\t\tfor ( nextTerm of generator ) {\n\t\t\tresult += nextTerm;\n\t\t\tif (\n\t\t\t\tabs(tolerance * result) >= abs(nextTerm) ||\n\t\t\t\t--counter === 0 // eslint-disable-line no-plusplus\n\t\t\t) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Case B: Repeatedly call function...\n\t\tdo {\n\t\t\tnextTerm = generator();\n\t\t\tresult += nextTerm;\n\t\t}\n\t\twhile ( ( abs(tolerance * result) < abs(nextTerm) ) && --counter ); // eslint-disable-line no-plusplus\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default sumSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://www.boost.org/doc/libs/1_83_0/boost/math/special_functions/log1p.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2005-2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport ln from './../../../../base/special/ln';\nimport FLOAT_EPS from '@stdlib/constants/float64/eps';\nimport sumSeries from './../../../../base/tools/sum-series';\nimport log1pSeries from './log1p_series.js';\n\n\n// MAIN //\n\n/**\n* Evaluates \\\\( \\operatorname{log1pmx}(x) = \\ln(1+x) - x \\\\).\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = log1pmx( 1.1 );\n* // returns ~-0.358\n*\n* @example\n* var v = log1pmx( 0.99 );\n* // returns ~-0.302\n*\n* @example\n* var v = log1pmx( -0.99 );\n* // returns ~-3.615\n*\n* @example\n* var v = log1pmx( -1.1 );\n* // returns NaN\n*\n* @example\n* var v = log1pmx( NaN );\n* // returns NaN\n*/\nfunction log1pmx( x ) {\n\tvar opts;\n\tvar ax;\n\tif ( x <= -1.0 ) {\n\t\treturn NaN;\n\t}\n\tax = abs( x );\n\tif ( ax > 0.95 ) {\n\t\treturn ln( 1.0 + x ) - x;\n\t}\n\tif ( ax < FLOAT_EPS ) {\n\t\treturn -x * x / 2.0;\n\t}\n\topts = {\n\t\t'initialValue': -x\n\t};\n\treturn sumSeries( log1pSeries( x ), opts );\n}\n\n\n// EXPORTS //\n\nexport default log1pmx;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://www.boost.org/doc/libs/1_83_0/boost/math/special_functions/log1p.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2005-2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Creates a function to evaluate a Taylor series expansion `pow(-1, k-1) * pow(x, k) / k` for `ln(1 + x)`.\n*\n* @private\n* @param {number} x - the value at which to evaluate the series\n* @returns {Function} series function\n*/\nfunction log1pSeries( x ) {\n\tvar mMult = -x;\n\tvar mProd = -1.0;\n\tvar k = 0;\n\n\treturn next;\n\n\t/**\n\t* Calculate the next term of the series.\n\t*\n\t* @private\n\t* @returns {number} series expansion term\n\t*/\n\tfunction next() {\n\t\tmProd *= mMult;\n\t\tk += 1;\n\t\treturn mProd / k;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default log1pSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport log1pmx from './../../../../base/special/log1pmx';\nimport erfc from './../../../../base/special/erfc';\nimport sqrt from './../../../../base/special/sqrt';\nimport exp from './../../../../base/special/exp';\nimport TWO_PI from '@stdlib/constants/float64/two-pi';\nimport polyvalC0 from './polyval_c0.js';\nimport polyvalC1 from './polyval_c1.js';\nimport polyvalC2 from './polyval_c2.js';\nimport polyvalC3 from './polyval_c3.js';\nimport polyvalC4 from './polyval_c4.js';\nimport polyvalC5 from './polyval_c5.js';\nimport polyvalC6 from './polyval_c6.js';\nimport polyvalC7 from './polyval_c7.js';\nimport polyvalC8 from './polyval_c8.js';\n\n\n// VARIABLES //\n\n// Pre-allocate workspace array:\nvar workspace = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Asymptotic expansions of the incomplete gamma functions when `a` is large and `x ~ a` (IEEE double precision or 10^-17).\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} x - function parameter\n* @returns {number} value of asymptotic expansion\n*/\nfunction igammaTemmeLarge( a, x ) {\n\tvar result;\n\tvar sigma;\n\tvar phi;\n\tvar y;\n\tvar z;\n\n\tsigma = ( x-a ) / a;\n\tphi = -log1pmx( sigma );\n\ty = a * phi;\n\tz = sqrt( 2.0 * phi );\n\tif ( x < a ) {\n\t\tz = -z;\n\t}\n\tworkspace[ 0 ] = polyvalC0( z );\n\tworkspace[ 1 ] = polyvalC1( z );\n\tworkspace[ 2 ] = polyvalC2( z );\n\tworkspace[ 3 ] = polyvalC3( z );\n\tworkspace[ 4 ] = polyvalC4( z );\n\tworkspace[ 5 ] = polyvalC5( z );\n\tworkspace[ 6 ] = polyvalC6( z );\n\tworkspace[ 7 ] = polyvalC7( z );\n\tworkspace[ 8 ] = polyvalC8( z );\n\tworkspace[ 9 ] = -0.00059676129019274625;\n\tresult = evalpoly( workspace, 1.0/a );\n\tresult *= exp( -y ) / sqrt( TWO_PI * a );\n\tif ( x < a ) {\n\t\tresult = -result;\n\t}\n\tresult += erfc( sqrt(y) ) / 2.0;\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default igammaTemmeLarge;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sumSeries from './../../../../base/tools/sum-series';\nimport lowerIncompleteGammaSeries from './lower_incomplete_gamma_series.js';\n\n\n// MAIN //\n\n/**\n* Sums elements of the series expansion of the lower incomplete gamma function.\n*\n* ## Method\n*\n* - Multiply result by `((z^a) * (e^-z) / a)` to get the full lower incomplete integral.\n* - Divide by `tgamma(a)` to get the normalized value.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} z - function parameter\n* @param {number} initialValue - initial value of the resulting sum\n* @returns {number} sum of terms of lower gamma series\n*/\nfunction lowerGammaSeries( a, z, initialValue ) {\n\tvar result;\n\tvar s;\n\n\tinitialValue = initialValue || 0.0;\n\ts = lowerIncompleteGammaSeries( a, z );\n\tresult = sumSeries( s, {\n\t\t'initialValue': initialValue\n\t});\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default lowerGammaSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Creates a function to evaluate a series expansion of the incomplete gamma function.\n*\n* @private\n* @param {number} a1 - function parameter\n* @param {number} z1 - function parameter\n* @returns {Function} series function\n*/\nfunction lowerIncompleteGammaSeries( a1, z1 ) {\n\tvar result = 1.0;\n\tvar a = a1;\n\tvar z = z1;\n\treturn next;\n\n\t/**\n\t* Calculate the next term of the series.\n\t*\n\t* @private\n\t* @returns {number} series expansion term\n\t*/\n\tfunction next() {\n\t\tvar r = result;\n\t\ta += 1.0;\n\t\tresult *= z/a;\n\t\treturn r;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default lowerIncompleteGammaSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn Infinity;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 709811.662581658 + (x * (679979.8474157227 + (x * (293136.7857211597 + (x * (74887.54032914672 + (x * (12555.290582413863 + (x * (1443.4299244417066 + (x * (115.24194596137347 + (x * (6.309239205732627 + (x * (0.22668404630224365 + (x * (0.004826466289237662 + (x * 0.00004624429436045379))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (362880.0 + (x * (1026576.0 + (x * (1172700.0 + (x * (723680.0 + (x * (269325.0 + (x * (63273.0 + (x * (9450.0 + (x * (870.0 + (x * (45.0 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.00004624429436045379 + (x * (0.004826466289237662 + (x * (0.22668404630224365 + (x * (6.309239205732627 + (x * (115.24194596137347 + (x * (1443.4299244417066 + (x * (12555.290582413863 + (x * (74887.54032914672 + (x * (293136.7857211597 + (x * (679979.8474157227 + (x * 709811.662581658))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (45.0 + (x * (870.0 + (x * (9450.0 + (x * (63273.0 + (x * (269325.0 + (x * (723680.0 + (x * (1172700.0 + (x * (1026576.0 + (x * (362880.0 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006-7, 2013-14.\n* Copyright Paul A. Bristow 2007, 2013-14.\n* Copyright Nikhar Agrawal 2013-14.\n* Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport lanczosSumExpGScaled from './../../../../base/special/gamma-lanczos-sum-expg-scaled';\nimport gammaln from './../../../../base/special/gammaln';\nimport gamma from './../../../../base/special/gamma';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport max from './../../../../base/special/max';\nimport min from './../../../../base/special/min';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\nimport G from '@stdlib/constants/float64/gamma-lanczos-g';\nimport E from '@stdlib/constants/float64/e';\n\n\n// MAIN //\n\n/**\n* Computes `(z^a)*(e^-z) / gamma(a)`.\n*\n* @private\n* @param {number} a - input value\n* @param {number} z - input value\n* @returns {number} function value\n*/\nfunction regularisedGammaPrefix( a, z ) {\n\tvar prefix;\n\tvar amza;\n\tvar agh;\n\tvar alz;\n\tvar amz;\n\tvar sq;\n\tvar d;\n\n\tagh = a + G - 0.5;\n\td = ( (z - a) - G + 0.5 ) / agh;\n\tif ( a < 1.0 ) {\n\t\t// Treat a < 1 as a special case because our Lanczos approximations are optimized against the factorials with a > 1, and for high precision types very small values of `a` can give rather erroneous results for gamma:\n\t\tif ( z <= MIN_LN ) {\n\t\t\t// Use logs, so should be free of cancellation errors:\n\t\t\treturn exp( ( a * ln(z) ) - z - gammaln( a ) );\n\t\t}\n\t\t// No danger of overflow as gamma(a) < 1/a for small a, so direct calculation:\n\t\treturn pow( z, a ) * exp( -z ) / gamma( a );\n\t}\n\tif ( abs(d*d*a) <= 100.0 && a > 150.0 ) {\n\t\t// Special case for large a and a ~ z:\n\t\tprefix = ( a * ( log1p( d ) - d ) ) + ( z * ( 0.5-G ) / agh );\n\t\tprefix = exp( prefix );\n\t}\n\telse {\n\t\t// General case. Direct computation is most accurate, but use various fallbacks for different parts of the problem domain:\n\t\talz = a * ln(z / agh);\n\t\tamz = a - z;\n\t\tif (\n\t\t\tmin(alz, amz) <= MIN_LN ||\n\t\t\tmax(alz, amz) >= MAX_LN\n\t\t) {\n\t\t\tamza = amz / a;\n\t\t\tif (\n\t\t\t\tmin(alz, amz)/2.0 > MIN_LN &&\n\t\t\t\tmax(alz, amz)/2.0 < MAX_LN\n\t\t\t) {\n\t\t\t\t// Compute square root of the result and then square it:\n\t\t\t\tsq = pow( z / agh, a / 2.0 ) * exp( amz / 2.0 );\n\t\t\t\tprefix = sq * sq;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tmin(alz, amz)/4.0 > MIN_LN &&\n\t\t\t\tmax(alz, amz)/4.0 < MAX_LN &&\n\t\t\t\tz > a\n\t\t\t) {\n\t\t\t\t// Compute the 4th root of the result then square it twice:\n\t\t\t\tsq = pow( z / agh, a / 4.0 ) * exp( amz / 4.0 );\n\t\t\t\tprefix = sq * sq;\n\t\t\t\tprefix *= prefix;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tamza > MIN_LN &&\n\t\t\t\tamza < MAX_LN\n\t\t\t) {\n\t\t\t\tprefix = pow( (z * exp(amza)) / agh, a );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprefix = exp( alz + amz );\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tprefix = pow( z / agh, a ) * exp( amz );\n\t\t}\n\t}\n\tprefix *= sqrt( agh / E ) / lanczosSumExpGScaled( a );\n\treturn prefix;\n}\n\n\n// EXPORTS //\n\nexport default regularisedGammaPrefix;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/powm1.hpp}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isinfinite from './../../../../base/assert/is-infinite';\nimport abs from './../../../../base/special/abs';\nimport expm1 from './../../../../base/special/expm1';\nimport ln from './../../../../base/special/ln';\nimport pow from './../../../../base/special/pow';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Evaluates `bˣ - 1`.\n*\n* @param {number} b - base\n* @param {number} x - exponent\n* @returns {number} function value\n*\n* @example\n* var y = powm1( 2.0, 3.0 );\n* // returns 7.0\n*\n* @example\n* var y = powm1( 4.0, 0.5 );\n* // returns 1.0\n*\n* @example\n* var y = powm1( 0.0, 100.0 );\n* // returns -1.0\n*\n* @example\n* var y = powm1( 100.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var y = powm1( 0.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var y = powm1( 3.141592653589793, 5.0 );\n* // returns ~305.0197\n*\n* @example\n* var y = powm1( NaN, 3.0 );\n* // returns NaN\n*\n* @example\n* var y = powm1( 5.0, NaN );\n* // returns NaN\n*/\nfunction powm1( b, x ) {\n\tvar result;\n\tvar y;\n\tif (\n\t\tisnan( b ) ||\n\t\tisnan( x )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\t// Any number raised to zero (including 0) is always 1 => b^0 - 1 = 0\n\t\treturn 0.0;\n\t}\n\tif ( b === 0.0 ) {\n\t\t// Zero raised to any number (except 0) is always zero => 0^x - 1 = -1\n\t\treturn -1.0;\n\t}\n\tif ( b < 0.0 && x%2.0 === 0 ) {\n\t\t// If `x` is even, recognize that `(-b)**x == (b)**x`...\n\t\tb = -b;\n\t}\n\tif ( b > 0.0 ) {\n\t\tif (\n\t\t\tabs( x*(b-1.0) ) < 0.5 ||\n\t\t\tabs( x ) < 0.2\n\t\t) {\n\t\t\t// No good/quick approximation for ln(b)*x, so we have to evaluate...\n\t\t\ty = ln( b ) * x;\n\t\t\tif ( y < 0.5 ) {\n\t\t\t\treturn expm1( y );\n\t\t\t}\n\t\t}\n\t} else if ( trunc( x ) !== x ) {\n\t\t// Exponentiation would yield a complex result...\n\t\treturn NaN;\n\t}\n\tresult = pow( b, x ) - 1.0;\n\tif ( isinfinite( result ) || isnan( result ) ) {\n\t\treturn NaN;\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default powm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/detail/lgamma_small.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006-7, 2013-14.\n* (C) Copyright Paul A. Bristow 2007, 2013-14.\n* (C) Copyright Nikhar Agrawal 2013-14.\n* (C) Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport EPS from '@stdlib/constants/float64/eps';\nimport rateval1 from './rational_p1q1.js';\nimport rateval2 from './rational_p2q2.js';\nimport rateval3 from './rational_p3q3.js';\n\n\n// VARIABLES //\n\nvar Y1 = 0.158963680267333984375;\nvar Y2 = 0.52815341949462890625;\nvar Y3 = 0.452017307281494140625;\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of the gamma function for small arguments.\n*\n* ## Method\n*\n* 1. For \\\\( z > 2 \\\\), begin by performing argument reduction until \\\\( z \\\\) is in \\\\(\\[2,3)\\\\). Use the following form:\n*\n* ```tex\n* \\operatorname{gammaln}(z) = (z-2)(z+1)(Y + R(z-2))\n* ```\n*\n* where \\\\( R(z-2) \\\\) is a rational approximation optimized for low absolute error. As long as the absolute error is small compared to the constant \\\\( Y \\\\), then any rounding error in the computation will get wiped out.\n*\n* 2. If \\\\( z < 1 \\\\), use recurrence to shift to \\\\( z \\\\) in the interval \\\\(\\[1,2\\]\\\\). Then, use one of two approximations: one for \\\\( z \\\\) in \\\\(\\[1,1.5\\]\\\\) and one for \\\\( z \\\\) in \\\\(\\[1.5,2\\]\\\\):\n*\n* - For \\(( z \\\\) in \\\\(\\[1,1.5\\]\\\\), use\n*\n* ```tex\n* \\operatorname{gammaln}(z) = (z-1)(z-2)(Y + R(z-1))\n* ```\n*\n* where \\\\( R(z-1) \\\\) is a rational approximation optimized for low absolute error. As long as the absolute error is small compared to the constant \\\\( Y \\\\), then any rounding error in the computation will get wiped out.\n*\n* - For \\\\( z \\\\) in \\\\(\\[1.5,2\\]\\\\), use\n*\n* ```tex\n* \\operatorname{gammaln}(z) = (2-z)(1-z)(Y + R(2-z))\n* ```\n*\n* where \\\\( R(2-z) \\\\) is a rational approximation optimized for low absolute error. As long as the absolute error is small compared to the constant \\\\( Y \\\\), then any rounding error in the computation will get wiped out.\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | function | peak | maximum deviation |\n* |:--------:|:------------:|:-----------------:|\n* | R(Z-2) | 4.231e-18 | 5.900e-24 |\n* | R(Z-1) | 1.230011e-17 | 3.139e-021 |\n* | R(2-Z) | 1.797565e-17 | 2.151e-021 |\n*\n* @private\n* @param {number} z - input value\n* @param {number} zm1 - `z` minus one\n* @param {number} zm2 - `z` minus two\n* @returns {number} function value\n*/\nfunction lgammaSmallImp( z, zm1, zm2 ) {\n\tvar prefix;\n\tvar result;\n\tvar r;\n\tvar R;\n\n\tif ( z < EPS ) {\n\t\treturn -ln( z );\n\t}\n\tif ( zm1 === 0.0 || zm2 === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\tresult = 0.0;\n\tif ( z > 2.0 ) {\n\t\tif ( z >= 3.0 ) {\n\t\t\tdo {\n\t\t\t\tz -= 1.0;\n\t\t\t\tzm2 -= 1.0;\n\t\t\t\tresult += ln(z);\n\t\t\t} while ( z >= 3.0 );\n\t\t\tzm2 = z - 2.0;\n\t\t}\n\t\tr = zm2 * ( z+1.0 );\n\t\tR = rateval1( zm2 );\n\t\tresult += ( r*Y1 ) + ( r*R );\n\t\treturn result;\n\t}\n\tif ( z < 1.0 ) {\n\t\tresult += -ln(z);\n\t\tzm2 = zm1;\n\t\tzm1 = z;\n\t\tz += 1.0;\n\t}\n\tif ( z <= 1.5 ) {\n\t\tr = rateval2( zm1 );\n\t\tprefix = zm1 * zm2;\n\t\tresult += ( prefix*Y2 ) + ( prefix*r );\n\t\treturn result;\n\t}\n\t// Case: 1.5 < z <= 2\n\tr = zm2 * zm1;\n\tR = rateval3( -zm2 );\n\tresult += ( r*Y3 ) + ( r*R );\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default lgammaSmallImp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.01803556856784494;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.01803556856784494 + (x * (0.02512664961998968 + (x * (0.049410315156753225 + (x * (0.0172491608709614 + (x * (-0.0002594535632054381 + (x * (-0.0005410098692152044 + (x * (-0.00003245886498259485 + (x * 0.0))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.962029871977952 + (x * (1.4801966942423133 + (x * (0.5413914320717209 + (x * (0.09885042511280101 + (x * (0.008213096746488934 + (x * (0.00022493629192211576 + (x * -2.2335276320861708e-7))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-0.00003245886498259485 + (x * (-0.0005410098692152044 + (x * (-0.0002594535632054381 + (x * (0.0172491608709614 + (x * (0.049410315156753225 + (x * (0.02512664961998968 + (x * -0.01803556856784494))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -2.2335276320861708e-7 + (x * (0.00022493629192211576 + (x * (0.008213096746488934 + (x * (0.09885042511280101 + (x * (0.5413914320717209 + (x * (1.4801966942423133 + (x * (1.962029871977952 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.04906224540690395;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.04906224540690395 + (x * (-0.09691175301595212 + (x * (-0.4149833583594954 + (x * (-0.4065671242119384 + (x * (-0.1584135863906922 + (x * (-0.024014982064857155 + (x * -0.0010034668769627955))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (3.0234982984646304 + (x * (3.4873958536072385 + (x * (1.9141558827442668 + (x * (0.5071377386143635 + (x * (0.05770397226904519 + (x * 0.001957681026011072))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.0010034668769627955 + (x * (-0.024014982064857155 + (x * (-0.1584135863906922 + (x * (-0.4065671242119384 + (x * (-0.4149833583594954 + (x * (-0.09691175301595212 + (x * 0.04906224540690395))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.001957681026011072 + (x * (0.05770397226904519 + (x * (0.5071377386143635 + (x * (1.9141558827442668 + (x * (3.4873958536072385 + (x * (3.0234982984646304 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.029232972183027003;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.029232972183027003 + (x * (0.14421626775719232 + (x * (-0.14244039073863127 + (x * (0.05428096940550536 + (x * (-0.008505359768683364 + (x * (0.0004311713426792973 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-1.5016935605448505 + (x * (0.846973248876495 + (x * (-0.22009515181499575 + (x * (0.02558279715597587 + (x * (-0.0010066679553914337 + (x * -8.271935218912905e-7))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0004311713426792973 + (x * (-0.008505359768683364 + (x * (0.05428096940550536 + (x * (-0.14244039073863127 + (x * (0.14421626775719232 + (x * -0.029232972183027003))))))))))); // eslint-disable-line max-len\n\t\ts2 = -8.271935218912905e-7 + (x * (-0.0010066679553914337 + (x * (0.02558279715597587 + (x * (-0.22009515181499575 + (x * (0.846973248876495 + (x * (-1.5016935605448505 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006-7, 2013-14.\n* (C) Copyright Paul A. Bristow 2007, 2013-14.\n* (C) Copyright Nikhar Agrawal 2013-14.\n* (C) Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gamma from './../../../../base/special/gamma';\nimport expm1 from './../../../../base/special/expm1';\nimport log1p from './../../../../base/special/log1p';\nimport isnan from './../../../../base/assert/is-nan';\nimport lgammaSmallImp from './lgamma_small_imp.js';\n\n\n// MAIN //\n\n/**\n* Computes `gamma(x+1) - 1`.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = gamma1pm1( 0.2 );\n* // returns ~-0.082\n*\n* @example\n* var v = gamma1pm1( -9.2 );\n* // returns ~-1.0\n*\n* @example\n* var v = gamma1pm1( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = gamma1pm1( -3.0 );\n* // returns NaN\n*\n* @example\n* var v = gamma1pm1( NaN );\n* // returns NaN\n*/\nfunction gamma1pm1( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x < 0.0 ) {\n\t\tif ( x < -0.5 ) {\n\t\t\t// Best method is simply to subtract 1 from gamma:\n\t\t\treturn gamma( 1.0+x ) - 1.0;\n\t\t}\n\t\t// Use expm1 on the logarithm of gamma:\n\t\treturn expm1( -log1p( x ) + lgammaSmallImp( x+2.0, x+1.0, x ) );\n\t}\n\tif ( x < 2.0 ) {\n\t\t// Use expm1 on the logarithm of gamma:\n\t\treturn expm1( lgammaSmallImp( x+1.0, x, x-1.0 ) );\n\t}\n\t// Best method is simply to subtract 1 from gamma:\n\treturn gamma( 1.0+x ) - 1.0;\n}\n\n\n// EXPORTS //\n\nexport default gamma1pm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\nimport FLOAT32_SMALLEST_NORMAL from '@stdlib/constants/float32/smallest-normal';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 1000000;\n\n\n// FUNCTIONS //\n\n/**\n* Evaluates a continued fraction expansion.\n*\n* ```text\n* a1\n* ---------------\n* b1 + a2\n* ----------\n* b2 + a3\n* -----\n* b3 + ...\n* ```\n*\n* @private\n* @param {Function} gen - function giving terms of continued fraction expansion\n* @param {PositiveNumber} factor - further terms are only added as long as factor*result is smaller than the next term\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} evaluated expansion\n*/\nfunction continuedFractionA( gen, factor, maxIter ) {\n\tvar delta;\n\tvar a0;\n\tvar C;\n\tvar D;\n\tvar f;\n\tvar v;\n\n\tv = gen();\n\tf = v[ 1 ];\n\ta0 = v[ 0 ];\n\tif ( f === 0 ) {\n\t\tf = FLOAT32_SMALLEST_NORMAL;\n\t}\n\tC = f;\n\tD = 0.0;\n\n\tdo {\n\t\tv = gen();\n\t\tif ( v ) {\n\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\tif ( D === 0.0 ) {\n\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t}\n\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\tif ( C === 0.0 ) {\n\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t}\n\t\t\tD = 1.0 / D;\n\t\t\tdelta = C * D;\n\t\t\tf *= delta;\n\t\t}\n\t} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\n\treturn a0 / f;\n}\n\n/**\n* Evaluates a continued fraction expansion.\n*\n* ```text\n* b0 + a1\n* ---------------\n* b1 + a2\n* ----------\n* b2 + a3\n* -----\n* b3 + ...\n* ```\n*\n* @private\n* @param {Function} gen - function giving terms of continued fraction expansion\n* @param {PositiveNumber} factor - further terms are only added as long as factor*result is smaller than the next term\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} evaluated expansion\n*/\nfunction continuedFractionB( gen, factor, maxIter ) {\n\tvar delta;\n\tvar C;\n\tvar D;\n\tvar f;\n\tvar v;\n\n\tv = gen();\n\tf = v[ 1 ];\n\tif ( f === 0.0 ) {\n\t\tf = FLOAT32_SMALLEST_NORMAL;\n\t}\n\tC = f;\n\tD = 0.0;\n\tdo {\n\t\tv = gen();\n\t\tif ( v ) {\n\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\tif ( D === 0.0 ) {\n\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t}\n\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\tif ( C === 0.0 ) {\n\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t}\n\t\t\tD = 1.0 / D;\n\t\t\tdelta = C * D;\n\t\t\tf *= delta;\n\t\t}\n\t} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\treturn f;\n}\n\n\n// MAIN //\n\n/**\n* Evaluates the continued fraction approximation for the supplied series generator using the modified Lentz algorithm.\n*\n* ## References\n*\n* - Lentz, William J. 1976. \"Generating bessel functions in Mie scattering calculations using continued fractions.\" _Applied Optics_ 15 (3): 668–71. doi:[10.1364/AO.15.000668](https://doi.org/10.1364/AO.15.000668).\n*\n* @param {Function} generator - function returning terms of continued fraction expansion\n* @param {Object} [options] - function options\n* @param {PositiveInteger} [options.maxIter=1000000] - maximum number of iterations\n* @param {PositiveNumber} [options.tolerance=2.22e-16] - further terms are only added as long as the next term is greater than current term times the tolerance\n* @param {boolean} [options.keep=false] - whether to keep the leading b term\n* @returns {number} value of continued fraction\n*\n* @example\n* // Continued fraction for (e-1)^(-1):\n* var gen = generator();\n* var out = continuedFraction( gen );\n* // returns ~0.582\n*\n* function generator() {\n* var i = 0;\n* return function() {\n* i++;\n* return [ i, i ];\n* };\n* }\n*/\nfunction continuedFraction( generator, options ) {\n\tvar maxIter;\n\tvar opts;\n\tvar eps;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\topts = options;\n\t}\n\teps = opts.tolerance || EPS;\n\tmaxIter = opts.maxIter || MAX_ITER;\n\n\tif ( opts.keep ) {\n\t\treturn continuedFractionB( generator, eps, maxIter );\n\t}\n\treturn continuedFractionA( generator, eps, maxIter );\n}\n\n\n// EXPORTS //\n\nexport default continuedFraction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Calculate a continued fraction approximation.\n*\n* @module @stdlib/math/base/tools/continued-fraction\n*\n* @example\n* import continuedFraction from '@stdlib/math/base/tools/continued-fraction';\n*\n* // Continued fraction for (e-1)^(-1):\n* var gen = generator()\n* var out = continuedFraction( gen );\n* // returns ~0.582\n*\n* function generator() {\n* var i = 0;\n* return function() {\n* i++;\n* return [ i, i ];\n* };\n* }\n*/\n\n// MODULES //\n\nimport hasGeneratorSupport from '@stdlib/assert/has-generator-support';\nimport generator from './generators.js';\nimport basic from './basic.js';\n\n\n// MAIN //\n\nvar continuedFraction;\nif ( hasGeneratorSupport() ) {\n\tcontinuedFraction = generator;\n} else {\n\tcontinuedFraction = basic;\n}\n\n\n// EXPORTS //\n\nexport default continuedFraction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport FLOAT32_SMALLEST_NORMAL from '@stdlib/constants/float32/smallest-normal';\nimport EPS from '@stdlib/constants/float64/eps';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 1000000;\n\n\n// FUNCTIONS //\n\n/**\n* Evaluates a continued fraction expansion.\n*\n* ```text\n* a1\n* ---------------\n* b1 + a2\n* ----------\n* b2 + a3\n* -----\n* b3 + ...\n* ```\n*\n* @private\n* @param {Function} gen - function giving terms of continued fraction expansion\n* @param {PositiveNumber} factor - further terms are only added as long as factor*result is smaller than the next term\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} evaluated expansion\n*/\nfunction continuedFractionA( gen, factor, maxIter ) {\n\tvar isgenerator;\n\tvar delta;\n\tvar a0;\n\tvar f;\n\tvar C;\n\tvar D;\n\tvar v;\n\n\tisgenerator = typeof gen.next === 'function';\n\tv = ( isgenerator ) ? gen.next().value : gen();\n\tf = v[ 1 ];\n\ta0 = v[ 0 ];\n\tif ( f === 0.0 ) {\n\t\tf = FLOAT32_SMALLEST_NORMAL;\n\t}\n\tC = f;\n\tD = 0;\n\tif ( isgenerator === true ) {\n\t\tdo {\n\t\t\tv = gen.next().value;\n\t\t\tif ( v ) {\n\t\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\t\tif ( D === 0.0 ) {\n\t\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\t\tif ( C === 0.0 ) {\n\t\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tD = 1.0 / D;\n\t\t\t\tdelta = C * D;\n\t\t\t\tf *= delta;\n\t\t\t}\n\t\t} while ( ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\t} else {\n\t\tdo {\n\t\t\tv = gen();\n\t\t\tif ( v ) {\n\t\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\t\tif ( D === 0.0 ) {\n\t\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\t\tif ( C === 0.0 ) {\n\t\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tD = 1.0 / D;\n\t\t\t\tdelta = C * D;\n\t\t\t\tf *= delta;\n\t\t\t}\n\t\t} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\t}\n\treturn a0 / f;\n}\n\n/**\n* Evaluates a continued fraction expansion.\n*\n* ```text\n* b0 + a1\n* ---------------\n* b1 + a2\n* ----------\n* b2 + a3\n* -----\n* b3 + ...\n* ```\n*\n* @private\n* @param {Function} gen - function giving terms of continued fraction expansion\n* @param {PositiveNumber} factor - further terms are only added as long as factor*result is smaller than the next term\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} evaluated expansion\n*/\nfunction continuedFractionB( gen, factor, maxIter ) {\n\tvar isgenerator;\n\tvar delta;\n\tvar f;\n\tvar C;\n\tvar D;\n\tvar v;\n\n\tisgenerator = typeof gen.next === 'function';\n\tv = ( isgenerator ) ? gen.next().value : gen();\n\tf = v[ 1 ];\n\tif ( f === 0.0 ) {\n\t\tf = FLOAT32_SMALLEST_NORMAL;\n\t}\n\tC = f;\n\tD = 0.0;\n\tif ( isgenerator === true ) {\n\t\tdo {\n\t\t\tv = gen.next().value;\n\t\t\tif ( v ) {\n\t\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\t\tif ( D === 0.0 ) {\n\t\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\t\tif ( C === 0.0 ) {\n\t\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tD = 1.0 / D;\n\t\t\t\tdelta = C * D;\n\t\t\t\tf *= delta;\n\t\t\t}\n\t\t} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\t} else {\n\t\tdo {\n\t\t\tv = gen();\n\t\t\tif ( v ) {\n\t\t\t\tD = v[ 1 ] + ( v[ 0 ] * D );\n\t\t\t\tif ( D === 0.0 ) {\n\t\t\t\t\tD = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tC = v[ 1 ] + ( v[ 0 ] / C );\n\t\t\t\tif ( C === 0.0 ) {\n\t\t\t\t\tC = FLOAT32_SMALLEST_NORMAL;\n\t\t\t\t}\n\t\t\t\tD = 1.0 / D;\n\t\t\t\tdelta = C * D;\n\t\t\t\tf *= delta;\n\t\t\t}\n\t\t} while ( v && ( abs( delta - 1.0 ) > factor ) && --maxIter ); // eslint-disable-line no-plusplus\n\t}\n\treturn f;\n}\n\n\n// MAIN //\n\n/**\n* Evaluates the continued fraction approximation for the supplied series generator using the modified Lentz algorithm.\n*\n* ## References\n*\n* - Lentz, William J. 1976. \"Generating bessel functions in Mie scattering calculations using continued fractions.\" _Applied Optics_ 15 (3): 668–71. doi:[10.1364/AO.15.000668](https://doi.org/10.1364/AO.15.000668).\n*\n* @param {Function} generator - function returning terms of continued fraction expansion\n* @param {Object} [options] - function options\n* @param {PositiveInteger} [options.maxIter=1000] - maximum number of iterations\n* @param {PositiveNumber} [options.tolerance=2.22e-16] - further terms are only added as long as the next term is greater than current term times the tolerance\n* @param {boolean} [options.keep=false] - whether to keep the leading b term\n* @returns {number} value of continued fraction\n*\n* @example\n* // Continued fraction for (e-1)^(-1):\n* var gen = generator();\n* var out = continuedFraction( gen );\n* // returns ~0.582\n*\n* function* generator() {\n* var i = 0;\n* while ( true ) {\n* i++;\n* yield [ i, i ];\n* }\n* }\n*/\nfunction continuedFraction( generator, options ) {\n\tvar maxIter;\n\tvar opts;\n\tvar eps;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\topts = options;\n\t}\n\tmaxIter = opts.maxIter || MAX_ITER;\n\teps = opts.tolerance || EPS;\n\n\tif ( opts.keep ) {\n\t\treturn continuedFractionB( generator, eps, maxIter );\n\t}\n\treturn continuedFractionA( generator, eps, maxIter );\n}\n\n\n// EXPORTS //\n\nexport default continuedFraction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport continuedFraction from './../../../../base/tools/continued-fraction';\nimport upperIncompleteGammaFract from './upper_incomplete_gamma_fract.js';\n\n\n// MAIN //\n\n/**\n* Evaluate the lower incomplete gamma integral via a series expansion and divide by `gamma(z)` to normalize.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} z - function parameter\n* @returns {number} function value\n*/\nfunction upperGammaFraction( a, z ) {\n\tvar f = upperIncompleteGammaFract( a, z );\n\treturn 1.0 / ( z - a + 1.0 + continuedFraction( f ) );\n}\n\n\n// EXPORTS //\n\nexport default upperGammaFraction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Creates a function to evaluate a series expansion of the upper incomplete gamma fraction.\n*\n* @private\n* @param {number} a1 - function parameter\n* @param {number} z1 - function parameter\n* @returns {Function} series function\n*/\nfunction upperIncompleteGammaFract( a1, z1 ) {\n\tvar z = z1 - a1 + 1.0;\n\tvar a = a1;\n\tvar k = 0;\n\treturn next;\n\n\t/**\n\t* Calculate the next term of the series.\n\t*\n\t* @private\n\t* @returns {Array} series expansion terms\n\t*/\n\tfunction next() {\n\t\tk += 1;\n\t\tz += 2.0;\n\t\treturn [\n\t\t\tk * (a - k),\n\t\t\tz\n\t\t];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default upperIncompleteGammaFract;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006-7, 2013-14.\n* (C) Copyright Paul A. Bristow 2007, 2013-14.\n* (C) Copyright Nikhar Agrawal 2013-14.\n* (C) Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaln from './../../../../base/special/gammaln';\nimport floor from './../../../../base/special/floor';\nimport gamma from './../../../../base/special/gamma';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport SQRT_EPSILON from '@stdlib/constants/float64/sqrt-eps';\nimport FLOAT64_MAX from '@stdlib/constants/float64/max';\nimport SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport finiteGammaQ from './finite_gamma_q.js';\nimport finiteHalfGammaQ from './finite_half_gamma_q.js';\nimport fullIGammaPrefix from './full_igamma_prefix.js';\nimport igammaTemmeLarge from './igamma_temme_large.js';\nimport lowerGammaSeries from './lower_gamma_series.js';\nimport regularisedGammaPrefix from './regularised_gamma_prefix.js';\nimport tgammaSmallUpperPart from './tgamma_small_upper_part.js';\nimport upperGammaFraction from './upper_gamma_fraction.js';\n\n\n// VARIABLES //\n\nvar MAX_FACTORIAL = 170; // TODO: consider extracting as a constant\n\n\n// MAIN //\n\n/**\n* Computes the regularized incomplete gamma function. The upper tail is calculated via the modified Lentz's method for computing continued fractions, the lower tail using a power expansion.\n*\n* ## Notes\n*\n* - When `a >= MAX_FACTORIAL` and computing the non-normalized incomplete gamma, result is rather hard to compute unless we use logs. There are really two options a) if `x` is a long way from `a` in value then we can reliably use methods 2 and 4 below in logarithmic form and go straight to the result. Otherwise we let the regularized gamma take the strain (the result is unlikely to underflow in the central region anyway) and combine with `lgamma` in the hopes that we get a finite result.\n*\n* @param {NonNegativeNumber} x - function parameter\n* @param {PositiveNumber} a - function parameter\n* @param {boolean} [regularized=true] - boolean indicating if the function should evaluate the regularized or non-regularized incomplete gamma functions\n* @param {boolean} [upper=false] - boolean indicating if the function should return the upper tail of the incomplete gamma function\n* @returns {number} function value\n*/\nfunction gammainc( x, a, regularized, upper ) {\n\tvar optimisedInvert;\n\tvar normalized;\n\tvar evalMethod;\n\tvar initValue;\n\tvar isHalfInt;\n\tvar useTemme;\n\tvar isSmallA;\n\tvar invert;\n\tvar result;\n\tvar isInt;\n\tvar sigma;\n\tvar gam;\n\tvar res;\n\tvar fa;\n\tvar g;\n\n\tif ( x < 0.0 || a <= 0.0 ) {\n\t\treturn NaN;\n\t}\n\tnormalized = ( regularized === void 0 ) ? true : regularized;\n\tinvert = upper;\n\tresult = 0.0;\n\tif ( a >= MAX_FACTORIAL && !normalized ) {\n\t\tif ( invert && ( a * 4.0 < x ) ) {\n\t\t\t// This is method 4 below, done in logs:\n\t\t\tresult = ( a * ln(x) ) - x;\n\t\t\tresult += ln( upperGammaFraction( a, x ) );\n\t\t}\n\t\telse if ( !invert && ( a > 4.0 * x ) ) {\n\t\t\t// This is method 2 below, done in logs:\n\t\t\tresult = ( a * ln(x) ) - x;\n\t\t\tinitValue = 0;\n\t\t\tresult += ln( lowerGammaSeries( a, x, initValue ) / a );\n\t\t}\n\t\telse {\n\t\t\tresult = gammainc( a, x, true, invert );\n\t\t\tif ( result === 0.0 ) {\n\t\t\t\tif ( invert ) {\n\t\t\t\t\t// Try http://functions.wolfram.com/06.06.06.0039.01\n\t\t\t\t\tresult = 1.0 + ( 1.0 / (12.0*a) ) + ( 1.0 / (288.0*a*a) );\n\t\t\t\t\tresult = ln( result ) - a + ( ( a-0.5 ) * ln(a) );\n\t\t\t\t\tresult += ln( SQRT_TWO_PI );\n\t\t\t\t} else {\n\t\t\t\t\t// This is method 2 below, done in logs, we're really outside the range of this method, but since the result is almost certainly infinite, we should probably be OK:\n\t\t\t\t\tresult = ( a * ln( x ) ) - x;\n\t\t\t\t\tinitValue = 0.0;\n\t\t\t\t\tresult += ln( lowerGammaSeries( a, x, initValue ) / a );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tresult = ln( result ) + gammaln( a );\n\t\t\t}\n\t\t}\n\t\tif ( result > MAX_LN ) {\n\t\t\treturn PINF;\n\t\t}\n\t\treturn exp( result );\n\t}\n\tisSmallA = ( a < 30 ) && ( a <= x + 1.0 ) && ( x < MAX_LN );\n\tif ( isSmallA ) {\n\t\tfa = floor( a );\n\t\tisInt = ( fa === a );\n\t\tisHalfInt = ( isInt ) ? false : ( abs( fa - a ) === 0.5 );\n\t} else {\n\t\tisInt = isHalfInt = false;\n\t}\n\tif ( isInt && x > 0.6 ) {\n\t\t// Calculate Q via finite sum:\n\t\tinvert = !invert;\n\t\tevalMethod = 0;\n\t}\n\telse if ( isHalfInt && x > 0.2 ) {\n\t\t// Calculate Q via finite sum for half integer a:\n\t\tinvert = !invert;\n\t\tevalMethod = 1;\n\t}\n\telse if ( x < SQRT_EPSILON && a > 1.0 ) {\n\t\tevalMethod = 6;\n\t}\n\telse if ( x < 0.5 ) {\n\t\t// Changeover criterion chosen to give a changeover at Q ~ 0.33:\n\t\tif ( -0.4 / ln( x ) < a ) {\n\t\t\tevalMethod = 2;\n\t\t} else {\n\t\t\tevalMethod = 3;\n\t\t}\n\t}\n\telse if ( x < 1.1 ) {\n\t\t// Changeover here occurs when P ~ 0.75 or Q ~ 0.25:\n\t\tif ( x * 0.75 < a ) {\n\t\t\tevalMethod = 2;\n\t\t} else {\n\t\t\tevalMethod = 3;\n\t\t}\n\t}\n\telse {\n\t\t// Begin by testing whether we're in the \"bad\" zone where the result will be near 0.5 and the usual series and continued fractions are slow to converge:\n\t\tuseTemme = false;\n\t\tif ( normalized && a > 20 ) {\n\t\t\tsigma = abs( (x-a)/a );\n\t\t\tif ( a > 200 ) {\n\t\t\t\t// Limit chosen so that we use Temme's expansion only if the result would be larger than about 10^-6. Below that the regular series and continued fractions converge OK, and if we use Temme's method we get increasing errors from the dominant erfc term as it's (inexact) argument increases in magnitude.\n\t\t\t\tif ( 20 / a > sigma * sigma ) {\n\t\t\t\t\tuseTemme = true;\n\t\t\t\t}\n\t\t\t} else if ( sigma < 0.4 ) {\n\t\t\t\tuseTemme = true;\n\t\t\t}\n\t\t}\n\t\tif ( useTemme ) {\n\t\t\tevalMethod = 5;\n\t\t}\n\t\t// Regular case where the result will not be too close to 0.5: Changeover occurs at P ~ Q ~ 0.5. Note that series computation of P is about x2 faster than continued fraction calculation of Q, so try and use the CF only when really necessary, especially for small x.\n\t\telse if ( x - ( 1.0 / (3.0 * x) ) < a ) {\n\t\t\tevalMethod = 2;\n\t\t} else {\n\t\t\tevalMethod = 4;\n\t\t\tinvert = !invert;\n\t\t}\n\t}\n\n\t/* eslint-disable default-case */\n\tswitch ( evalMethod ) {\n\tcase 0:\n\t\tresult = finiteGammaQ( a, x );\n\t\tif (normalized === false ) {\n\t\t\tresult *= gamma( a );\n\t\t}\n\t\tbreak;\n\tcase 1:\n\t\tresult = finiteHalfGammaQ( a, x );\n\t\tif ( normalized === false ) {\n\t\t\tresult *= gamma( a );\n\t\t}\n\t\tbreak;\n\tcase 2:\n\t\t// Compute P:\n\t\tresult = ( normalized ) ?\n\t\t\tregularisedGammaPrefix( a, x ) :\n\t\t\tfullIGammaPrefix( a, x );\n\t\tif ( result !== 0.0 ) {\n\t\t\tinitValue = 0.0;\n\t\t\toptimisedInvert = false;\n\t\t\tif ( invert ) {\n\t\t\t\tinitValue = ( normalized ) ? 1.0 : gamma( a );\n\t\t\t\tif (\n\t\t\t\t\tnormalized ||\n\t\t\t\t\tresult >= 1.0 ||\n\t\t\t\t\tFLOAT64_MAX * result > initValue\n\t\t\t\t) {\n\t\t\t\t\tinitValue /= result;\n\t\t\t\t\tif (\n\t\t\t\t\t\tnormalized ||\n\t\t\t\t\t\ta < 1.0 ||\n\t\t\t\t\t\t( FLOAT64_MAX / a > initValue )\n\t\t\t\t\t) {\n\t\t\t\t\t\tinitValue *= -a;\n\t\t\t\t\t\toptimisedInvert = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tinitValue = 0.0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tinitValue = 0.0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult *= lowerGammaSeries( a, x, initValue ) / a;\n\t\tif ( optimisedInvert ) {\n\t\t\tinvert = false;\n\t\t\tresult = -result;\n\t\t}\n\t\tbreak;\n\tcase 3:\n\t\t// Compute Q:\n\t\tinvert = !invert;\n\t\tres = tgammaSmallUpperPart( a, x, invert );\n\t\tresult = res[ 0 ];\n\t\tg = res[ 1 ];\n\t\tinvert = false;\n\t\tif ( normalized ) {\n\t\t\tresult /= g;\n\t\t}\n\t\tbreak;\n\tcase 4:\n\t\t// Compute Q:\n\t\tresult = ( normalized ) ?\n\t\t\tregularisedGammaPrefix( a, x ) :\n\t\t\tfullIGammaPrefix( a, x );\n\t\tif ( result !== 0 ) {\n\t\t\tresult *= upperGammaFraction( a, x );\n\t\t}\n\t\tbreak;\n\tcase 5:\n\t\tresult = igammaTemmeLarge( a, x );\n\t\tif ( x >= a ) {\n\t\t\tinvert = !invert;\n\t\t}\n\t\tbreak;\n\tcase 6:\n\t\t// Since x is so small that P is necessarily very small too, use http://functions.wolfram.com/GammaBetaErf/GammaRegularized/06/01/05/01/01/\n\t\tresult = ( normalized ) ?\n\t\t\tpow(x, a) / gamma( a + 1.0 ) :\n\t\t\tpow( x, a ) / a;\n\t\tresult *= 1.0 - ( a * x / ( a + 1.0 ) );\n\t\tbreak;\n\t}\n\tif ( normalized && result > 1.0 ) {\n\t\tresult = 1.0;\n\t}\n\tif ( invert ) {\n\t\tgam = ( normalized ) ? 1.0 : gamma( a );\n\t\tresult = gam - result;\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default gammainc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\n\n\n// MAIN //\n\n/**\n* Calculates normalized Q when a is an integer.\n*\n* @private\n* @param {integer} a - function parameter\n* @param {number} x - function parameter\n* @returns {number} upper gamma fraction\n*/\nfunction finiteGammaQ( a, x ) {\n\tvar term;\n\tvar sum;\n\tvar e;\n\tvar n;\n\n\te = exp( -x );\n\tsum = e;\n\tif ( sum !== 0.0 ) {\n\t\tterm = sum;\n\t\tfor ( n = 1; n < a; ++n ) {\n\t\t\tterm /= n;\n\t\t\tterm *= x;\n\t\t\tsum += term;\n\t\t}\n\t}\n\treturn sum;\n}\n\n\n// EXPORTS //\n\nexport default finiteGammaQ;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport erfc from './../../../../base/special/erfc';\nimport sqrt from './../../../../base/special/sqrt';\nimport exp from './../../../../base/special/exp';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// MAIN //\n\n/**\n* Calculates normalized Q when a is a half-integer.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} x - function parameter\n* @returns {number} upper gamma fraction\n*/\nfunction finiteHalfGammaQ( a, x ) {\n\tvar half;\n\tvar term;\n\tvar sum;\n\tvar e;\n\tvar n;\n\n\te = erfc( sqrt(x) );\n\tif ( e !== 0 && a > 1.0 ) {\n\t\tterm = exp( -x ) / sqrt( PI * x );\n\t\tterm *= x;\n\t\thalf = 0.5;\n\t\tterm /= half;\n\t\tsum = term;\n\t\tfor ( n = 2; n < a; ++n ) {\n\t\t\tterm /= n - half;\n\t\t\tterm *= x;\n\t\t\tsum += term;\n\t\t}\n\t\te += sum;\n\t}\n\treturn e;\n}\n\n\n// EXPORTS //\n\nexport default finiteHalfGammaQ;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport powm1 from './../../../../base/special/powm1';\nimport sumSeries from './../../../../base/tools/sum-series';\nimport gamma1pm1 from './../../../../base/special/gamma1pm1';\nimport smallGamma2Series from './small_gamma2_series.js';\n\n\n// MAIN //\n\n/**\n* Compute the full upper fraction (Q) when `a` is very small.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} x - function parameter\n* @param {boolean} invert - boolean indicating if the upper tail of the incomplete gamma function should be evaluated\n* @returns {Array} full upper fraction (Q) and pgam\n*/\nfunction tgammaSmallUpperPart( a, x, invert ) {\n\tvar initialValue;\n\tvar result;\n\tvar pgam;\n\tvar p;\n\tvar s;\n\n\tresult = gamma1pm1( a );\n\tpgam = ( result + 1.0 ) / a;\n\tp = powm1( x, a );\n\tresult -= p;\n\tresult /= a;\n\ts = smallGamma2Series( a, x );\n\tp += 1.0;\n\tinitialValue = ( invert ) ? pgam : 0.0;\n\tresult = -p * sumSeries( s, {\n\t\t'initialValue': (initialValue - result) / p\n\t});\n\tif ( invert ) {\n\t\tresult = -result;\n\t}\n\treturn [ result, pgam ];\n}\n\n\n// EXPORTS //\n\nexport default tgammaSmallUpperPart;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n/**\n* Series representation for upper fraction when `z` is small.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} x - function parameter\n* @returns {Function} series function\n*/\nfunction smallGamma2Series( a, x ) {\n\tvar result;\n\tvar apn;\n\tvar n;\n\tvar r;\n\n\tresult = -x;\n\tx = -x;\n\tapn = a + 1.0;\n\tn = 1;\n\treturn next;\n\n\t/**\n\t* Calculate the next term of the series.\n\t*\n\t* @private\n\t* @returns {number} series expansion term\n\t*/\n\tfunction next() {\n\t\tr = result / apn;\n\t\tresult *= x;\n\t\tn += 1;\n\t\tresult /= n;\n\t\tapn += 1.0;\n\t\treturn r;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default smallGamma2Series;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.3333333333333333;\n\t}\n\treturn -0.3333333333333333 + (x * (0.08333333333333333 + (x * (-0.014814814814814815 + (x * (0.0011574074074074073 + (x * (0.0003527336860670194 + (x * (-0.0001787551440329218 + (x * (0.00003919263178522438 + (x * (-0.0000021854485106799924 + (x * (-0.00000185406221071516 + (x * (8.296711340953087e-7 + (x * (-1.7665952736826078e-7 + (x * (6.707853543401498e-9 + (x * (1.0261809784240309e-8 + (x * (-4.382036018453353e-9 + (x * 9.14769958223679e-10))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.001851851851851852;\n\t}\n\treturn -0.001851851851851852 + (x * (-0.003472222222222222 + (x * (0.0026455026455026454 + (x * (-0.0009902263374485596 + (x * (0.00020576131687242798 + (x * (-4.018775720164609e-7 + (x * (-0.000018098550334489977 + (x * (0.00000764916091608111 + (x * (-0.0000016120900894563446 + (x * (4.647127802807434e-9 + (x * (1.378633446915721e-7 + (x * (-5.752545603517705e-8 + (x * 1.1951628599778148e-8))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.004133597883597883;\n\t}\n\treturn 0.004133597883597883 + (x * (-0.0026813271604938273 + (x * (0.0007716049382716049 + (x * (0.0000020093878600823047 + (x * (-0.00010736653226365161 + (x * (0.000052923448829120125 + (x * (-0.000012760635188618728 + (x * (3.423578734096138e-8 + (x * (0.0000013721957309062932 + (x * (-6.298992138380055e-7 + (x * 1.4280614206064242e-7))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0006494341563786008;\n\t}\n\treturn 0.0006494341563786008 + (x * (0.00022947209362139917 + (x * (-0.0004691894943952557 + (x * (0.00026772063206283885 + (x * (-0.00007561801671883977 + (x * (-2.396505113867297e-7 + (x * (0.000011082654115347302 + (x * (-0.0000056749528269915965 + (x * 0.0000014230900732435883))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.0008618882909167117;\n\t}\n\treturn -0.0008618882909167117 + (x * (0.0007840392217200666 + (x * (-0.0002990724803031902 + (x * (-0.0000014638452578843418 + (x * (0.00006641498215465122 + (x * (-0.00003968365047179435 + (x * 0.000011375726970678419))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.00033679855336635813;\n\t}\n\treturn -0.00033679855336635813 + (x * (-0.00006972813758365858 + (x * (0.0002772753244959392 + (x * (-0.00019932570516188847 + (x * (0.00006797780477937208 + (x * (1.419062920643967e-7 + (x * (-0.000013594048189768693 + (x * (0.000008018470256334202 + (x * -0.000002291481176508095))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0005313079364639922;\n\t}\n\treturn 0.0005313079364639922 + (x * (-0.0005921664373536939 + (x * (0.0002708782096718045 + (x * (7.902353232660328e-7 + (x * (-0.00008153969367561969 + (x * (0.0000561168275310625 + (x * -0.000018329116582843375))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.00034436760689237765;\n\t}\n\treturn 0.00034436760689237765 + (x * (0.00005171790908260592 + (x * (-0.00033493161081142234 + (x * (0.0002812695154763237 + (x * -0.00010976582244684731))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.0006526239185953094;\n\t}\n\treturn -0.0006526239185953094 + (x * (0.0008394987206720873 + (x * -0.000438297098541721))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaDeltaRatio from './../../../../base/special/gamma-delta-ratio';\nimport factorial from './../../../../base/special/factorial';\nimport gammainc from './../../../../base/special/gammainc';\nimport log1p from './../../../../base/special/log1p';\nimport abs from './../../../../base/special/abs';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MIN_VALUE from '@stdlib/constants/float64/smallest-normal';\nimport EPSILON from '@stdlib/constants/float64/eps';\nimport fullIGammaPrefix from './full_igamma_prefix.js';\nimport regularizedGammaPrefix from './regularized_gamma_prefix.js';\n\n\n// VARIABLES //\n\nvar p = new Array( 30 );\n\n\n// MAIN //\n\n/**\n* This is DiDonato and Morris's BGRAT routine, see Eq's 9 through 9.6.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {Probability} y - probability equal to `1-x`\n* @param {NonNegativeInteger} s0 - initial value\n* @param {number} mult - initial value\n* @param {boolean} normalized - boolean indicating whether to evaluate the regularized or non-regularized incomplete beta function\n* @returns {number} function value\n*/\nfunction betaSmallBLargeASeries( a, b, x, y, s0, mult, normalized ) {\n\tvar prefix;\n\tvar tmp1;\n\tvar tnp1;\n\tvar sum;\n\tvar b2n;\n\tvar bm1;\n\tvar lx2;\n\tvar lxp;\n\tvar mbn;\n\tvar lx;\n\tvar t4;\n\tvar h;\n\tvar j;\n\tvar m;\n\tvar n;\n\tvar r;\n\tvar t;\n\tvar u;\n\n\t// Some values we'll need later, these are Eq 9.1:\n\tbm1 = b - 1.0;\n\tt = a + ( bm1 / 2.0 );\n\tif ( y < 0.35 ) {\n\t\tlx = log1p( -y );\n\t} else {\n\t\tlx = ln( x );\n\t}\n\tu = -t * lx;\n\n\t// And from from 9.2:\n\th = regularizedGammaPrefix( b, u );\n\tif ( h <= MIN_VALUE ) {\n\t\treturn s0;\n\t}\n\tif ( normalized ) {\n\t\tprefix = h / gammaDeltaRatio( a, b );\n\t\tprefix /= pow( t, b );\n\t} else {\n\t\tprefix = fullIGammaPrefix( b, u ) / pow( t, b );\n\t}\n\tprefix *= mult;\n\n\t// We need the quantity Pn. Unfortunately, this is computed recursively and requires a full history of all the previous values. No choice but to declare a big table and hope it's big enough...\n\tp[ 0 ] = 1; // see 9.3.\n\n\t// Now an initial value for J, see 9.6: gammainc( u, b, regularized, upper )\n\tj = gammainc( u, b, true, true );\n\tj /= h;\n\n\t// Now we can start to pull things together and evaluate the sum in Eq 9:\n\tsum = s0 + ( prefix * j ); // Value at N = 0\n\n\t// Some variables we'll need...\n\ttnp1 = 1.0; // 2*N+1\n\tlx2 = lx / 2.0;\n\tlx2 *= lx2;\n\tlxp = 1.0;\n\tt4 = 4.0 * t * t;\n\tb2n = b;\n\tfor ( n = 1; n < p.length; ++n ) {\n\t\t// Begin by evaluating the next Pn from Eq 9.4:\n\t\ttnp1 += 2.0;\n\t\tp[ n ] = 0.0;\n\t\tmbn = b - n;\n\t\ttmp1 = 3;\n\t\tfor ( m = 1; m < n; ++m ) {\n\t\t\tmbn = ( m * b ) - n;\n\t\t\tp[ n ] += mbn * p[ n-m ] / factorial( tmp1 );\n\t\t\ttmp1 += 2;\n\t\t}\n\t\tp[ n ] /= n;\n\t\tp[ n ] += bm1 / factorial( tnp1 );\n\n\t\t// Now we want Jn from Jn-1 using Eq 9.6:\n\t\tj = ( ( b2n * ( b2n+1.0 ) * j ) + ( ( u+b2n+1.0 ) * lxp ) ) / t4;\n\t\tlxp *= lx2;\n\t\tb2n += 2.0;\n\n\t\t// Pull it together with Eq 9:\n\t\tr = prefix * p[ n ] * j;\n\t\tsum += r;\n\t\tif ( r > 1.0 ) {\n\t\t\tif ( abs( r ) < abs( EPSILON * sum ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if ( abs( r / EPSILON ) < abs( sum ) ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn sum;\n}\n\n\n// EXPORTS //\n\nexport default betaSmallBLargeASeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006-7, 2013-14.\n* Copyright Paul A. Bristow 2007, 2013-14.\n* Copyright Nikhar Agrawal 2013-14.\n* Copyright Christopher Kormanyos 2013-14.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport lanczosSumExpGScaled from './../../../../base/special/gamma-lanczos-sum-expg-scaled';\nimport gammaln from './../../../../base/special/gammaln';\nimport gamma from './../../../../base/special/gamma';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport max from './../../../../base/special/max';\nimport min from './../../../../base/special/min';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\nimport G from '@stdlib/constants/float64/gamma-lanczos-g';\nimport E from '@stdlib/constants/float64/e';\n\n\n// MAIN //\n\n/**\n* Computes `(z^a)*(e^-z) / gamma(a)`.\n*\n* @private\n* @param {number} a - input value\n* @param {number} z - input value\n* @returns {number} function value\n*/\nfunction regularizedGammaPrefix( a, z ) {\n\tvar prefix;\n\tvar amza;\n\tvar agh;\n\tvar alz;\n\tvar amz;\n\tvar sq;\n\tvar d;\n\n\tagh = a + G - 0.5;\n\td = ( (z - a) - G + 0.5 ) / agh;\n\tif ( a < 1.0 ) {\n\t\t// Treat a < 1 as a special case because our Lanczos approximations are optimized against the factorials with a > 1, and for high precision types very small values of `a` can give rather erroneous results for gamma:\n\t\tif ( z <= MIN_LN ) {\n\t\t\t// Use logs, so should be free of cancellation errors:\n\t\t\treturn exp( ( a * ln(z) ) - z - gammaln( a ) );\n\t\t}\n\t\t// No danger of overflow as gamma(a) < 1/a for small a, so direct calculation:\n\t\treturn pow( z, a ) * exp( -z ) / gamma( a );\n\t}\n\tif ( abs(d*d*a) <= 100.0 && a > 150.0 ) {\n\t\t// Special case for large a and a ~ z:\n\t\tprefix = ( a * ( log1p( d ) - d ) ) + ( z * ( 0.5-G ) / agh );\n\t\tprefix = exp( prefix );\n\t}\n\telse {\n\t\t// General case. Direct computation is most accurate, but use various fallbacks for different parts of the problem domain:\n\t\talz = a * ln(z / agh);\n\t\tamz = a - z;\n\t\tif (\n\t\t\tmin(alz, amz) <= MIN_LN ||\n\t\t\tmax(alz, amz) >= MAX_LN\n\t\t) {\n\t\t\tamza = amz / a;\n\t\t\tif (\n\t\t\t\tmin(alz, amz)/2.0 > MIN_LN &&\n\t\t\t\tmax(alz, amz)/2.0 < MAX_LN\n\t\t\t) {\n\t\t\t\t// Compute square root of the result and then square it:\n\t\t\t\tsq = pow( z/agh, a/2.0 ) * exp( amz/2.0 );\n\t\t\t\tprefix = sq * sq;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tmin(alz, amz)/4.0 > MIN_LN &&\n\t\t\t\tmax(alz, amz)/4.0 < MAX_LN &&\n\t\t\t\tz > a\n\t\t\t) {\n\t\t\t\t// Compute the 4th root of the result then square it twice:\n\t\t\t\tsq = pow( z/agh, a/4.0 ) * exp( amz/4.0 );\n\t\t\t\tprefix = sq * sq;\n\t\t\t\tprefix *= prefix;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tamza > MIN_LN &&\n\t\t\t\tamza < MAX_LN\n\t\t\t) {\n\t\t\t\tprefix = pow( (z * exp(amza)) / agh, a );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprefix = exp( alz + amz );\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tprefix = pow( z/agh, a ) * exp( amz );\n\t\t}\n\t}\n\tprefix *= sqrt( agh/E ) / lanczosSumExpGScaled( a );\n\treturn prefix;\n}\n\n\n// EXPORTS //\n\nexport default regularizedGammaPrefix;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/gamma.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\n\n\n// MAIN //\n\n/**\n* Calculates the power term prefix `(z^a)(e^-z)` used in the non-normalized incomplete gammas.\n*\n* @private\n* @param {number} a - function parameter\n* @param {number} z - function parameter\n* @returns {number} power term prefix\n*/\nfunction fullIGammaPrefix( a, z ) {\n\tvar prefix;\n\tvar alz;\n\n\talz = a * ln( z );\n\tif ( z >= 1.0 ) {\n\t\tif ( ( alz < MAX_LN ) && ( -z > MIN_LN ) ) {\n\t\t\tprefix = pow( z, a ) * exp( -z );\n\t\t}\n\t\telse if ( a >= 1.0 ) {\n\t\t\tprefix = pow( z / exp(z/a), a );\n\t\t}\n\t\telse {\n\t\t\tprefix = exp( alz - z );\n\t\t}\n\t}\n\telse if ( alz > MIN_LN ) {\n\t\tprefix = pow( z, a ) * exp( -z );\n\t}\n\telse if ( z/a < MAX_LN ) {\n\t\tprefix = pow( z / exp(z/a), a );\n\t}\n\telse {\n\t\tprefix = exp( alz - z );\n\t}\n\treturn prefix;\n}\n\n\n// EXPORTS //\n\nexport default fullIGammaPrefix;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_37_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the delta in `beta(a,b,x) = prefix + delta * beta(a+k,b,x)`.\n*\n* ## Notes\n*\n* Specifically, the function calculates\n*\n* ```tex\n* \\frac{ (a)(a+1)(a+2)...(a+k-1) }{ (b)(b+1)(b+2)...(b+k-1) }\n* ```\n*\n* The function should only called with small `k`; for large `k`, it is grossly inefficient.\n*\n* @private\n* @param {number} a - input value\n* @param {number} b - input value\n* @param {NonNegativeInteger} k - input value\n* @returns {number} ratio value\n*/\nfunction risingFactorialRatio( a, b, k ) {\n\tvar result;\n\tvar i;\n\tif ( k === 0 ) {\n\t\treturn 1.0;\n\t}\n\tresult = 1.0;\n\tfor ( i = 0; i < k; i++ ) {\n\t\tresult *= ( a + i ) / ( b + i );\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default risingFactorialRatio;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport max from './../../../../base/special/max';\n\n\n// MAIN //\n\n/**\n* Returns the maximum absolute value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum absolute value\n*\n* @example\n* var v = maxabs( 3.14, -4.2 );\n* // returns 4.2\n*\n* @example\n* var v = maxabs( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = maxabs( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction maxabs( x, y ) {\n\treturn max( abs( x ), abs( y ) );\n}\n\n\n// EXPORTS //\n\nexport default maxabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport min from './../../../../base/special/min';\n\n\n// MAIN //\n\n/**\n* Returns the minimum absolute value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum absolute value\n*\n* @example\n* var v = minabs( -3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = minabs( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = minabs( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction minabs( x, y ) {\n\treturn min( abs( x ), abs( y ) );\n}\n\n\n// EXPORTS //\n\nexport default minabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport lanczosSumExpGScaled from './../../../../base/special/gamma-lanczos-sum-expg-scaled';\nimport maxabs from './../../../../base/special/maxabs';\nimport minabs from './../../../../base/special/minabs';\nimport expm1 from './../../../../base/special/expm1';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport min from './../../../../base/special/min';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\nimport G from '@stdlib/constants/float64/gamma-lanczos-g';\nimport E from '@stdlib/constants/float64/e';\n\n\n// MAIN //\n\n/**\n* Computes the leading power terms in the incomplete beta function.\n*\n* When normalized,\n*\n* ```tex\n* \\frac{ x^a y^b }{ \\operatorname{Beta}(a,b) }\n* ```\n*\n* and otherwise\n*\n* ```tex\n* x^a y^b\n* ```\n*\n* ## Notes\n*\n* - Almost all of the error in the incomplete beta comes from this function, particularly when \\\\( a \\\\) and \\\\( b \\\\) are large. Computing large powers are _hard_ though, and using logarithms just leads to horrendous cancellation errors.\n*\n* - For \\\\( l1 * l2 > 0 \\\\) or \\\\( \\operatorname{min}( a, b ) < 1 \\\\), the two power terms both go in the same direction (toward zero or toward infinity). In this case if either term overflows or underflows, then the product of the two must do so also. Alternatively, if one exponent is less than one, then we can't productively use it to eliminate overflow or underflow from the other term. Problems with spurious overflow/underflow can't be ruled out. In this case, but it is _very_ unlikely since one of the power terms will evaluate to a number close to 1.\n*\n* - If \\\\( \\max( \\abs(l1), \\abs(l2) ) < 0.5 \\\\), both exponents are near one and both the exponents are greater than one, and, further, these two power terms tend in opposite directions (one toward zero, the other toward infinity), so we have to combine the terms to avoid any risk of overflow or underflow. We do this by moving one power term inside the other, we have:\n*\n* ```tex\n* (1 + l_1)^a \\cdot (1 + l_2)^b \\\\\n* = ((1 + l_1) \\cdot (1 + l_2)^(b/a))^a \\\\\n* = (1 + l_1 + l_3 + l_1*l_3)^a\n* ```\n*\n* and\n*\n* ```tex\n* l_3 = (1 + l_2)^(b/a) - 1 \\\\\n* = \\exp((b/a) * \\ln(1 + l_2)) - 1\n* ```\n*\n* The tricky bit is deciding which term to move inside. By preference, we move the larger term inside, so that the size of the largest exponent is reduced. However, that can only be done as long as l3 (see above) is also small.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {Probability} y - probability equal to `1-x`\n* @param {boolean} normalized - boolean indicating whether to evaluate the power terms of the regularized or non-regularized incomplete beta function\n* @returns {number} power terms\n*/\nfunction ibetaPowerTerms( a, b, x, y, normalized ) {\n\tvar result;\n\tvar smallA;\n\tvar ratio;\n\tvar agh;\n\tvar bgh;\n\tvar cgh;\n\tvar l1;\n\tvar l2;\n\tvar l3;\n\tvar p1;\n\tvar b1;\n\tvar b2;\n\tvar c;\n\tvar l;\n\n\tif ( !normalized ) {\n\t\t// Can we do better here?\n\t\treturn pow( x, a ) * pow( y, b );\n\t}\n\tc = a + b;\n\n\t// Combine power terms with Lanczos approximation:\n\tagh = a + G - 0.5;\n\tbgh = b + G - 0.5;\n\tcgh = c + G - 0.5;\n\tresult = lanczosSumExpGScaled( c );\n\tresult /= lanczosSumExpGScaled( a ) * lanczosSumExpGScaled( b );\n\n\t// Combine with the leftover terms from the Lanczos approximation:\n\tresult *= sqrt( bgh / E );\n\tresult *= sqrt( agh / cgh );\n\n\t// `l1` and `l2` are the base of the exponents minus one:\n\tl1 = ( ( x * b ) - ( y * agh ) ) / agh;\n\tl2 = ( ( y * a ) - ( x * bgh ) ) / bgh;\n\tif ( minabs( l1, l2 ) < 0.2 ) {\n\t\t// When the base of the exponent is very near 1 we get really gross errors unless extra care is taken:\n\t\tif ( l1 * l2 > 0 || min( a, b ) < 1 ) {\n\t\t\tif ( abs(l1) < 0.1 ) {\n\t\t\t\tresult *= exp( a * log1p( l1 ) );\n\t\t\t} else {\n\t\t\t\tresult *= pow( ( x*cgh ) / agh, a );\n\t\t\t}\n\t\t\tif ( abs(l2) < 0.1 ) {\n\t\t\t\tresult *= exp( b * log1p( l2 ) );\n\t\t\t} else {\n\t\t\t\tresult *= pow((y * cgh) / bgh, b);\n\t\t\t}\n\t\t}\n\t\telse if ( maxabs( l1, l2 ) < 0.5 ) {\n\t\t\tsmallA = a < b;\n\t\t\tratio = b / a;\n\t\t\tif (\n\t\t\t\t(smallA && (ratio * l2 < 0.1)) ||\n\t\t\t\t(!smallA && (l1 / ratio > 0.1))\n\t\t\t) {\n\t\t\t\tl3 = expm1( ratio * log1p( l2 ) );\n\t\t\t\tl3 = l1 + l3 + ( l3 * l1 );\n\t\t\t\tl3 = a * log1p( l3 );\n\t\t\t\tresult *= exp( l3 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tl3 = expm1( log1p( l1 ) / ratio );\n\t\t\t\tl3 = l2 + l3 + ( l3 * l2 );\n\t\t\t\tl3 = b * log1p( l3 );\n\t\t\t\tresult *= exp( l3 );\n\t\t\t}\n\t\t}\n\t\telse if ( abs(l1) < abs(l2) ) {\n\t\t\t// First base near 1 only:\n\t\t\tl = ( a * log1p( l1 ) ) + ( b * ln( ( y*cgh ) / bgh ) );\n\t\t\tif ( l <= MIN_LN || l >= MAX_LN ) {\n\t\t\t\tl += ln(result);\n\t\t\t\tif ( l >= MAX_LN ) {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t\tresult = exp( l );\n\t\t\t} else {\n\t\t\t\tresult *= exp( l );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Second base near 1 only:\n\t\t\tl = ( b * log1p( l2 ) ) + ( a * ln( (x*cgh) / agh ) );\n\t\t\tif ( l <= MIN_LN || l >= MAX_LN ) {\n\t\t\t\tl += ln(result);\n\t\t\t\tif ( l >= MAX_LN ) {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t\tresult = exp( l );\n\t\t\t} else {\n\t\t\t\tresult *= exp( l );\n\t\t\t}\n\t\t}\n\t}\n\telse {\n\t\t// General case:\n\t\tb1 = (x * cgh) / agh;\n\t\tb2 = (y * cgh) / bgh;\n\t\tl1 = a * ln(b1);\n\t\tl2 = b * ln(b2);\n\t\tif (\n\t\t\tl1 >= MAX_LN ||\n\t\t\tl1 <= MIN_LN ||\n\t\t\tl2 >= MAX_LN ||\n\t\t\tl2 <= MIN_LN\n\t\t) {\n\t\t\t// Oops, under/overflow, sidestep if we can:\n\t\t\tif ( a < b ) {\n\t\t\t\tp1 = pow( b2, b / a );\n\t\t\t\tl3 = a * ( ln(b1) + ln(p1) );\n\t\t\t\tif ( l3 < MAX_LN && l3 > MIN_LN ) {\n\t\t\t\t\tresult *= pow( p1 * b1, a );\n\t\t\t\t} else {\n\t\t\t\t\tl2 += l1 + ln(result);\n\t\t\t\t\tif ( l2 >= MAX_LN ) {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t\tresult = exp( l2 );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tp1 = pow( b1, a / b );\n\t\t\t\tl3 = ( ln(p1) + ln(b2) ) * b;\n\t\t\t\tif ( l3 < MAX_LN && l3 > MIN_LN ) {\n\t\t\t\t\tresult *= pow( p1 * b2, b );\n\t\t\t\t} else {\n\t\t\t\t\tl2 += l1 + ln( result );\n\t\t\t\t\tif (l2 >= MAX_LN) {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t\tresult = exp( l2 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Finally the normal case:\n\t\t\tresult *= pow( b1, a ) * pow( b2, b );\n\t\t}\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default ibetaPowerTerms;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport continuedFraction from './../../../../base/tools/continued-fraction';\nimport ibetaPowerTerms from './ibeta_power_terms.js';\n\n\n// VARIABLES //\n\nvar OPTS = {\n\t'keep': true,\n\t'maxIter': 1000\n};\n\n\n// FUNCTIONS //\n\n/**\n* Continued fraction for the incomplete beta.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {Probability} y - probability equal to `1-x`\n* @returns {Function} series function\n*/\nfunction ibetaFraction2t( a, b, x, y ) {\n\tvar m = 0;\n\treturn next;\n\n\t/**\n\t* Calculate the numerator and denominator of the next term of the series.\n\t*\n\t* @private\n\t* @returns {Array} series expansion terms\n\t*/\n\tfunction next() {\n\t\tvar denom;\n\t\tvar aN;\n\t\tvar bN;\n\n\t\taN = (a + m - 1) * (a + b + m - 1) * m * (b - m) * x * x;\n\t\tdenom = a + ( 2.0*m ) - 1.0;\n\t\taN /= denom * denom;\n\t\tbN = m;\n\t\tbN += (m * (b - m) * x) / ( a + ( 2.0*m ) - 1.0 );\n\t\tbN += ( (a+m) * ( (a*y) - (b*x) + 1.0 + ( m*(2.0-x) ) ) ) / ( a + (2.0*m) + 1.0 ); // eslint-disable-line max-len\n\t\tm += 1;\n\t\treturn [ aN, bN ];\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Evaluates the incomplete beta via the continued fraction representation.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {Probability} y - probability equal to `1-x`\n* @param {boolean} normalized - boolean indicating whether to evaluate the power terms of the regularized or non-regularized incomplete beta function\n* @param {(Array|TypedArray|Object)} out - output array holding the derivative as the second element\n* @returns {number} incomplete beta value\n*/\nfunction ibetaFraction2( a, b, x, y, normalized, out ) {\n\tvar result;\n\tvar fract;\n\tvar f;\n\n\tresult = ibetaPowerTerms( a, b, x, y, normalized );\n\tif ( out ) {\n\t\tout[ 1 ] = result;\n\t}\n\tif ( result === 0.0 ) {\n\t\treturn result;\n\t}\n\tf = ibetaFraction2t( a, b, x, y );\n\tfract = continuedFraction( f, OPTS );\n\treturn result / fract;\n}\n\n\n// EXPORTS //\n\nexport default ibetaFraction2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport isInteger from './../../../../base/assert/is-integer';\nimport isnan from './../../../../base/assert/is-nan';\nimport isOdd from './../../../../base/assert/is-odd';\nimport floor from './../../../../base/special/floor';\nimport gcd from './../../../../base/special/gcd';\n\n\n// MAIN //\n\n/**\n* Computes the binomial coefficient of two integers.\n*\n* @param {integer} n - input value\n* @param {integer} k - second input value\n* @returns {integer} function value\n*\n* @example\n* var v = binomcoef( 8, 2 );\n* // returns 28\n*\n* @example\n* var v = binomcoef( 0, 0 );\n* // returns 1\n*\n* @example\n* var v = binomcoef( -4, 2 );\n* // returns 10\n*\n* @example\n* var v = binomcoef( NaN, 3 );\n* // returns NaN\n*\n* @example\n* var v = binomcoef( 5, NaN );\n* // returns NaN\n*\n* @example\n* var v = binomcoef( NaN, NaN );\n* // returns NaN\n*/\nfunction binomcoef( n, k ) {\n\tvar res;\n\tvar sgn;\n\tvar b;\n\tvar c;\n\tvar d;\n\tvar g;\n\tvar s;\n\tif ( isnan( n ) || isnan( k ) ) {\n\t\treturn NaN;\n\t}\n\tif ( !isInteger( n ) || !isInteger( k ) ) {\n\t\treturn NaN;\n\t}\n\tif ( k < 0 ) {\n\t\treturn 0;\n\t}\n\tsgn = 1;\n\tif ( n < 0 ) {\n\t\tn = -n + k - 1;\n\t\tif ( isOdd( k ) ) {\n\t\t\tsgn *= -1;\n\t\t}\n\t}\n\tif ( k > n ) {\n\t\treturn 0;\n\t}\n\tif ( k === 0 || k === n ) {\n\t\treturn sgn;\n\t}\n\tif ( k === 1 || k === n - 1 ) {\n\t\treturn sgn * n;\n\t}\n\t// Minimize the number of computed terms by leveraging symmetry:\n\tif ( n - k < k ) {\n\t\tk = n - k;\n\t}\n\ts = floor( MAX_SAFE_INTEGER / n );\n\n\t// Use a standard algorithm for computing the binomial coefficient (e.g., see Knuth's \"The Art of Computer Programming, 3rd Edition, Volume 2: Seminumerical Algorithms\")...\n\tres = 1;\n\tfor ( d = 1; d <= k; d++ ) {\n\t\t// Check for potential overflow...\n\t\tif ( res > s ) {\n\t\t\tbreak;\n\t\t}\n\t\tres *= n;\n\t\tres /= d;\n\t\tn -= 1;\n\t}\n\t// If we did not early exit from the previous loop, the answer is exact, and we can simply return...\n\tif ( d > k ) {\n\t\treturn sgn * res;\n\t}\n\t/*\n\t* Let `N` equal the provided `n`.\n\t*\n\t* We want to calculate C(N,k), and, at this point, we have calculated\n\t*\n\t* res = C(N,n) = C(N,N-n) = C(N,d-1)\n\t*\n\t* where `N-n = d-1` and, hence, `n = N - d + 1`.\n\t*\n\t* Given the following identity,\n\t*\n\t* C(N,k) = C(N,d-1) * C(N-d+1,k-d+1) / C(k,k-d+1)\n\t* = C(N,d-1) * C(n,k-d+1) / C(k,k-d+1)\n\t*\n\t* we can leverage recursion to perform argument reduction.\n\t*/\n\tb = binomcoef( n, k-d+1 );\n\tif ( b === PINF ) {\n\t\treturn sgn * b;\n\t}\n\tc = binomcoef( k, k-d+1 );\n\n\t/*\n\t* At this point, the result should be `res*b/c`.\n\t*\n\t* To help guard against overflow and precision loss, we calculate the greatest common divisor (gcd). In this case, we pick `b`, as `b` should be less than `res` in most (if not all) cases.\n\t*/\n\tg = gcd( b, c );\n\tb /= g;\n\tc /= g;\n\tres /= c;\n\treturn sgn * res * b;\n}\n\n\n// EXPORTS //\n\nexport default binomcoef;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ibetaPowerTerms from './ibeta_power_terms.js';\n\n\n// MAIN //\n\n/**\n* Computes the difference between `ibeta(a,b,x)` and `ibeta(a+k,b,x)`.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {Probability} y - probability equal to `1-x`\n* @param {NonNegativeInteger} k - function input\n* @param {boolean} normalized - boolean indicating whether to evaluate the power terms of the regularized or non-regularized incomplete beta function\n* @param {(Array|TypedArray|Object)} out - output array holding the derivative as the second element\n* @returns {number} difference between ibeta(a,b,x) and ibeta(a+k,b,x)\n*/\nfunction ibetaAStep( a, b, x, y, k, normalized, out ) {\n\tvar prefix;\n\tvar term;\n\tvar sum;\n\tvar i;\n\n\tprefix = ibetaPowerTerms( a, b, x, y, normalized );\n\tif ( out ) {\n\t\tout[ 1 ] = prefix;\n\t}\n\tprefix /= a;\n\tif ( prefix === 0.0 ) {\n\t\treturn prefix;\n\t}\n\tsum = 1.0;\n\tterm = 1.0;\n\n\t// Series summation from 0 to k-1:\n\tfor ( i = 0; i < k-1; ++i ) {\n\t\tterm *= (a+b+i) * x / (a+i+1.0);\n\t\tsum += term;\n\t}\n\tprefix *= sum;\n\treturn prefix;\n}\n\n\n// EXPORTS //\n\nexport default ibetaAStep;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport lanczosSumExpGScaled from './../../../../base/special/gamma-lanczos-sum-expg-scaled';\nimport sumSeries from './../../../../base/tools/sum-series';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MIN_VALUE from '@stdlib/constants/float64/smallest-normal';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport MIN_LN from '@stdlib/constants/float64/min-ln';\nimport G from '@stdlib/constants/float64/gamma-lanczos-g';\nimport E from '@stdlib/constants/float64/e';\n\n\n// VARIABLES //\n\nvar opts = {\n\t'maxTerms': 100\n};\n\n\n// FUNCTIONS //\n\n/**\n* Series approximation to the incomplete beta.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {number} result - initial result value\n* @returns {Function} series function\n*/\nfunction ibetaSeriesT( a, b, x, result ) {\n\tvar poch = 1.0 - b;\n\tvar n = 1;\n\treturn next;\n\n\t/**\n\t* Calculate the next term of the series.\n\t*\n\t* @private\n\t* @returns {number} series expansion term\n\t*/\n\tfunction next() {\n\t\tvar r = result / a;\n\t\ta += 1.0;\n\t\tresult *= poch * x / n;\n\t\tn += 1;\n\t\tpoch += 1.0;\n\t\treturn r;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Incomplete beta series.\n*\n* @private\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {Probability} x - function parameter\n* @param {NonNegativeInteger} s0 - initial value\n* @param {boolean} normalized - boolean indicating whether to evaluate the power terms of the regularized or non-regularized incomplete beta function\n* @param {(Array|TypedArray|Object)} out - output array holding the derivative as the second element\n* @param {Probability} y - probability equal to `1-x`\n* @returns {number} function value\n*/\nfunction ibetaSeries( a, b, x, s0, normalized, out, y ) {\n\tvar result;\n\tvar agh;\n\tvar bgh;\n\tvar cgh;\n\tvar l1;\n\tvar l2;\n\tvar c;\n\tvar s;\n\n\tif ( normalized ) {\n\t\tc = a + b;\n\n\t\t// Incomplete beta power term, combined with the Lanczos approximation:\n\t\tagh = a + G - 0.5;\n\t\tbgh = b + G - 0.5;\n\t\tcgh = c + G - 0.5;\n\t\tresult = lanczosSumExpGScaled( c ) / ( lanczosSumExpGScaled( a ) * lanczosSumExpGScaled( b ) ); // eslint-disable-line max-len\n\n\t\tl1 = ln( cgh / bgh ) * ( b - 0.5 );\n\t\tl2 = ln( x * cgh / agh ) * a;\n\n\t\t// Check for over/underflow in the power terms:\n\t\tif (\n\t\t\tl1 > MIN_LN &&\n\t\t\tl1 < MAX_LN &&\n\t\t\tl2 > MIN_LN &&\n\t\t\tl2 < MAX_LN\n\t\t) {\n\t\t\tif ( a * b < bgh * 10.0 ) {\n\t\t\t\tresult *= exp( ( b-0.5 ) * log1p( a / bgh ) );\n\t\t\t} else {\n\t\t\t\tresult *= pow( cgh / bgh, b - 0.5 );\n\t\t\t}\n\t\t\tresult *= pow( x * cgh / agh, a );\n\t\t\tresult *= sqrt( agh / E );\n\n\t\t\tif ( out ) {\n\t\t\t\tout[ 1 ] = result * pow( y, b );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// We need logs, and this *will* cancel:\n\t\t\tresult = ln( result ) + l1 + l2 + ( ( ln( agh ) - 1.0 ) / 2.0 );\n\t\t\tif ( out ) {\n\t\t\t\tout[ 1 ] = exp( result + ( b * ln( y ) ) );\n\t\t\t}\n\t\t\tresult = exp( result );\n\t\t}\n\t}\n\telse {\n\t\t// Non-normalized, just compute the power:\n\t\tresult = pow( x, a );\n\t}\n\tif ( result < MIN_VALUE ) {\n\t\treturn s0; // Safeguard: series can't cope with denorms.\n\t}\n\ts = ibetaSeriesT( a, b, x, result );\n\topts.initialValue = s0;\n\treturn sumSeries( s, opts );\n}\n\n\n// EXPORTS //\n\nexport default ibetaSeries;\n","/* eslint-disable max-statements, max-lines */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n* (C) Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport expm1 from './../../../../base/special/expm1';\nimport floor from './../../../../base/special/floor';\nimport log1p from './../../../../base/special/log1p';\nimport asin from './../../../../base/special/asin';\nimport beta from './../../../../base/special/beta';\nimport sqrt from './../../../../base/special/sqrt';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport max from './../../../../base/special/max';\nimport min from './../../../../base/special/min';\nimport MAX_FLOAT64 from '@stdlib/constants/float64/max';\nimport MIN_FLOAT64 from '@stdlib/constants/float64/smallest-normal';\nimport MAX_INT32 from '@stdlib/constants/int32/max';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport PI from '@stdlib/constants/float64/pi';\nimport betaSmallBLargeASeries from './beta_small_b_large_a_series.js';\nimport risingFactorialRatio from './rising_factorial_ratio.js';\nimport ibetaPowerTerms from './ibeta_power_terms.js';\nimport ibetaFraction2 from './ibeta_fraction2.js';\nimport binomialCCDF from './binomial_ccdf.js';\nimport ibetaAStep from './ibeta_a_step.js';\nimport ibetaSeries from './ibeta_series.js';\n\n\n// VARIABLES //\n\nvar ONE_OVER_PI = 1.0 / PI;\n\n\n// MAIN //\n\n/**\n* Evaluates the incomplete beta function and its first derivative and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - This function divides up the input range and selects the right implementation method for each domain.\n*\n* @param {Probability} x - function input\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {boolean} regularized - boolean indicating if the function should evaluate the regularized boolean beta function\n* @param {boolean} upper - boolean indicating if the function should return the upper tail of the incomplete beta function instead\n* @param {(Array|TypedArray|Object)} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {(Array|TypedArray|Object)} function value and first derivative\n*\n* @example\n* var out = ibetaImp( 0.5, 2.0, 2.0, false, false, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.083, ~1.5 ]\n*\n* @example\n* var out = ibetaImp( 0.2, 1.0, 2.0, false, true, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ 0.32, 1.6 ]\n*\n* @example\n* var out = ibetaImp( 0.2, 1.0, 2.0, true, true, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ 0.64, 1.6 ]\n*/\nfunction ibetaImp( x, a, b, regularized, upper, out, stride, offset ) {\n\tvar lambda;\n\tvar prefix;\n\tvar fract;\n\tvar bbar;\n\tvar div;\n\tvar tmp;\n\tvar i0;\n\tvar i1;\n\tvar k;\n\tvar n;\n\tvar p;\n\tvar y;\n\n\ty = 1.0 - x;\n\ti0 = offset;\n\ti1 = offset + stride;\n\n\t// Derivative not set...\n\tout[ i1 ] = -1;\n\tif ( isnan( x ) || x < 0.0 || x > 1.0 ) {\n\t\tout[ i0 ] = NaN;\n\t\tout[ i1 ] = NaN;\n\t\treturn out;\n\t}\n\tif ( regularized ) {\n\t\tif ( a < 0.0 || b < 0.0 ) {\n\t\t\tout[ i0 ] = NaN;\n\t\t\tout[ i1 ] = NaN;\n\t\t\treturn out;\n\t\t}\n\t\t// Extend to a few very special cases...\n\t\tif ( a === 0.0 ) {\n\t\t\tif ( b === 0.0 ) {\n\t\t\t\tout[ i0 ] = NaN;\n\t\t\t\tout[ i1 ] = NaN;\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\tif ( b > 0.0 ) {\n\t\t\t\tout[ i0 ] = ( upper ) ? 0.0 : 1.0;\n\t\t\t\treturn out;\n\t\t\t}\n\t\t} else if ( b === 0.0 ) {\n\t\t\tif ( a > 0.0 ) {\n\t\t\t\tout[ i0 ] = ( upper ) ? 1.0 : 0.0;\n\t\t\t\treturn out;\n\t\t\t}\n\t\t}\n\t} else if ( a <= 0.0 || b <= 0.0 ) {\n\t\tout[ i0 ] = NaN;\n\t\tout[ i1 ] = NaN;\n\t\treturn out;\n\t}\n\tif ( x === 0.0 ) {\n\t\tif ( a === 1.0 ) {\n\t\t\tout[ i1 ] = 1.0;\n\t\t} else {\n\t\t\tout[ i1 ] = ( a < 1.0 ) ? MAX_FLOAT64 / 2.0 : MIN_FLOAT64 * 2.0;\n\t\t}\n\t\tif ( upper ) {\n\t\t\tout[ i0 ] = ( regularized ) ? 1.0 : beta( a, b );\n\t\t\treturn out;\n\t\t}\n\t\tout[ i0 ] = 0.0;\n\t\treturn out;\n\t}\n\tif ( x === 1.0 ) {\n\t\tif ( b === 1.0 ) {\n\t\t\tout[ i1 ] = 1.0;\n\t\t} else {\n\t\t\tout[ i1 ] = ( b < 1.0 ) ? MAX_FLOAT64 / 2.0 : MIN_FLOAT64 * 2.0;\n\t\t}\n\t\tif ( upper ) {\n\t\t\tout[ i0 ] = 0.0;\n\t\t} else {\n\t\t\tout[ i0 ] = ( regularized ) ? 1.0 : beta( a, b );\n\t\t}\n\t\treturn out;\n\t}\n\tif ( a === 0.5 && b === 0.5 ) {\n\t\tout[ i1 ] = ONE_OVER_PI * sqrt( y * x );\n\n\t\t// We have an arcsine distribution:\n\t\tp = ( upper ) ? asin( sqrt(y) ) : asin( sqrt(x) );\n\t\tp /= HALF_PI;\n\t\tif ( !regularized ) {\n\t\t\tp *= PI;\n\t\t}\n\t\tout[ i0 ] = p;\n\t\treturn out;\n\t}\n\tif ( a === 1.0 ) {\n\t\ttmp = b;\n\t\tb = a;\n\t\ta = tmp;\n\n\t\ttmp = y;\n\t\ty = x;\n\t\tx = tmp;\n\n\t\tupper = !upper;\n\t}\n\tif ( b === 1.0 ) {\n\t\t// Special case see: http://functions.wolfram.com/GammaBetaErf/BetaRegularized/03/01/01/\n\t\tif ( a === 1.0 ) {\n\t\t\tout[ i0 ] = ( upper ) ? y : x;\n\t\t\tout[ i1 ] = 1.0;\n\t\t\treturn out;\n\t\t}\n\t\tout[ i1 ] = a * pow( x, a - 1.0 );\n\t\tif ( y < 0.5 ) {\n\t\t\tp = ( upper ) ? -expm1( a * log1p(-y) ) : exp( a * log1p(-y) );\n\t\t} else {\n\t\t\tp = ( upper ) ? -( pow( x, a ) - 1.0 ) : pow( x, a );\n\t\t}\n\t\tif ( !regularized ) {\n\t\t\tp /= a;\n\t\t}\n\t\tout[ i0 ] = p;\n\t\treturn out;\n\t}\n\tif ( min( a, b ) <= 1.0 ) {\n\t\tif ( x > 0.5 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = y;\n\t\t\ty = x;\n\t\t\tx = tmp;\n\n\t\t\tupper = !upper;\n\t\t}\n\t\tif ( max( a, b ) <= 1.0 ) {\n\t\t\t// Both a,b < 1:\n\t\t\tif ( (a >= min( 0.2, b ) ) || ( pow(x, a) <= 0.9 ) ) {\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract = -( ( regularized ) ? 1.0 : beta( a, b ) );\n\t\t\t\t\tupper = false;\n\t\t\t\t\tfract = -ibetaSeries( a, b, x, fract, regularized, out, y );\n\t\t\t\t} else {\n\t\t\t\t\tfract = ibetaSeries( a, b, x, 0, regularized, out, y );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttmp = b;\n\t\t\t\tb = a;\n\t\t\t\ta = tmp;\n\n\t\t\t\ttmp = y;\n\t\t\t\ty = x;\n\t\t\t\tx = tmp;\n\n\t\t\t\tupper = !upper;\n\t\t\t\tif ( y >= 0.3 ) {\n\t\t\t\t\tif ( upper ) {\n\t\t\t\t\t\tfract = -( ( regularized ) ? 1.0 : beta( a, b ) );\n\t\t\t\t\t\tupper = false;\n\t\t\t\t\t\tfract = -ibetaSeries( a, b, x, fract, regularized, out, y ); // eslint-disable-line max-len\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfract = ibetaSeries( a, b, x, 0, regularized, out, y );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Sidestep on a, and then use the series representation:\n\t\t\t\t\tif ( regularized ) {\n\t\t\t\t\t\tprefix = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = risingFactorialRatio( a + b, a, 20 );\n\t\t\t\t\t}\n\t\t\t\t\tfract = ibetaAStep( a, b, x, y, 20, regularized, out );\n\t\t\t\t\tif ( upper ) {\n\t\t\t\t\t\tfract -= ( ( regularized ) ? 1 : beta( a, b ) );\n\t\t\t\t\t\tupper = false;\n\t\t\t\t\t\tfract = -betaSmallBLargeASeries( a + 20.0, b, x, y, fract, prefix, regularized ); // eslint-disable-line max-len\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfract = betaSmallBLargeASeries( a + 20.0, b, x, y, fract, prefix, regularized ); // eslint-disable-line max-len\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( b <= 1.0 || ( x < 0.1 && ( pow( b * x, a ) <= 0.7 ) ) ) {\n\t\t\tif ( upper ) {\n\t\t\t\tfract = -( ( regularized ) ? 1 : beta( a, b ) );\n\t\t\t\tupper = false;\n\t\t\t\tfract = -ibetaSeries( a, b, x, fract, regularized, out, y );\n\t\t\t} else {\n\t\t\t\tfract = ibetaSeries( a, b, x, 0.0, regularized, out, y );\n\t\t\t}\n\t\t} else {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = y;\n\t\t\ty = x;\n\t\t\tx = tmp;\n\t\t\tupper = !upper;\n\n\t\t\tif ( y >= 0.3 ) {\n\t\t\t\tif (upper) {\n\t\t\t\t\tfract = -(( regularized ) ? 1.0 : beta( a, b ));\n\t\t\t\t\tupper = false;\n\t\t\t\t\tfract = -ibetaSeries( a, b, x, fract, regularized, out, y );\n\t\t\t\t} else {\n\t\t\t\t\tfract = ibetaSeries( a, b, x, 0.0, regularized, out, y );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( a >= 15.0 ) {\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract = -(( regularized ) ? 1.0 : beta( a, b ));\n\t\t\t\t\tupper = false;\n\t\t\t\t\tfract = -betaSmallBLargeASeries( a, b, x, y, fract, 1.0, regularized ); // eslint-disable-line max-len\n\t\t\t\t} else {\n\t\t\t\t\tfract = betaSmallBLargeASeries( a, b, x, y, 0.0, 1.0, regularized ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( regularized ) {\n\t\t\t\t\tprefix = 1;\n\t\t\t\t} else {\n\t\t\t\t\t// Sidestep to improve errors:\n\t\t\t\t\tprefix = risingFactorialRatio( a + b, a, 20.0 );\n\t\t\t\t}\n\t\t\t\tfract = ibetaAStep( a, b, x, y, 20.0, regularized, out );\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract -= ( ( regularized ) ? 1.0 : beta( a, b ) );\n\t\t\t\t\tupper = false;\n\t\t\t\t\tfract = -betaSmallBLargeASeries( a + 20.0, b, x, y, fract, prefix, regularized ); // eslint-disable-line max-len\n\t\t\t\t} else {\n\t\t\t\t\tfract = betaSmallBLargeASeries( a + 20.0, b, x, y, fract, prefix, regularized ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Both a,b >= 1:\n\t\tif ( a < b ) {\n\t\t\tlambda = a - ( (a + b) * x );\n\t\t} else {\n\t\t\tlambda = ( (a + b) * y ) - b;\n\t\t}\n\t\tif ( lambda < 0.0 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = y;\n\t\t\ty = x;\n\t\t\tx = tmp;\n\t\t\tupper = !upper;\n\t\t}\n\t\tif ( b < 40.0 ) {\n\t\t\tif (\n\t\t\t\tfloor(a) === a &&\n\t\t\t\tfloor(b) === b &&\n\t\t\t\ta < MAX_INT32 - 100\n\t\t\t) {\n\t\t\t\t// Relate to the binomial distribution and use a finite sum:\n\t\t\t\tk = a - 1.0;\n\t\t\t\tn = b + k;\n\t\t\t\tfract = binomialCCDF( n, k, x, y );\n\t\t\t\tif ( !regularized ) {\n\t\t\t\t\tfract *= beta( a, b );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( b * x <= 0.7 ) {\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract = -( ( regularized ) ? 1.0 : beta( a, b ) );\n\t\t\t\t\tupper = false;\n\t\t\t\t\tfract = -ibetaSeries( a, b, x, fract, regularized, out, y );\n\t\t\t\t} else {\n\t\t\t\t\tfract = ibetaSeries( a, b, x, 0.0, regularized, out, y );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( a > 15.0 ) {\n\t\t\t\t// Sidestep so we can use the series representation:\n\t\t\t\tn = floor( b );\n\t\t\t\tif ( n === b ) {\n\t\t\t\t\tn -= 1;\n\t\t\t\t}\n\t\t\t\tbbar = b - n;\n\t\t\t\tif ( regularized ) {\n\t\t\t\t\tprefix = 1;\n\t\t\t\t} else {\n\t\t\t\t\tprefix = risingFactorialRatio( a + bbar, bbar, n );\n\t\t\t\t}\n\t\t\t\tfract = ibetaAStep( bbar, a, y, x, n, regularized );\n\t\t\t\tfract = betaSmallBLargeASeries( a, bbar, x, y, fract, 1.0, regularized ); // eslint-disable-line max-len\n\t\t\t\tfract /= prefix;\n\t\t\t}\n\t\t\telse if ( regularized ) {\n\t\t\t\tn = floor( b );\n\t\t\t\tbbar = b - n;\n\t\t\t\tif ( bbar <= 0 ) {\n\t\t\t\t\tn -= 1;\n\t\t\t\t\tbbar += 1;\n\t\t\t\t}\n\t\t\t\tfract = ibetaAStep( bbar, a, y, x, n, regularized );\n\t\t\t\tfract += ibetaAStep( a, bbar, x, y, 20.0, regularized );\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract -= 1;\n\t\t\t\t}\n\t\t\t\tfract = betaSmallBLargeASeries( a + 20.0, bbar, x, y, fract, 1, regularized ); // eslint-disable-line max-len\n\t\t\t\tif ( upper ) {\n\t\t\t\t\tfract = -fract;\n\t\t\t\t\tupper = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfract = ibetaFraction2( a, b, x, y, regularized, out );\n\t\t\t}\n\t\t} else {\n\t\t\tfract = ibetaFraction2( a, b, x, y, regularized, out );\n\t\t}\n\t}\n\tif ( out[ i1 ] < 0.0 ) {\n\t\tout[ i1 ] = ibetaPowerTerms( a, b, x, y, true );\n\t}\n\tdiv = y * x;\n\tif ( out[ i1 ] !== 0.0 ) {\n\t\tif ( ( MAX_FLOAT64 * div < out[ i1 ] ) ) {\n\t\t\t// Overflow, return an arbitrarily large value:\n\t\t\tout[ i1 ] = MAX_FLOAT64 / 2.0;\n\t\t} else {\n\t\t\tout[ i1 ] /= div;\n\t\t}\n\t}\n\tout[ i0 ] = ( upper ) ? ( ( regularized ) ? 1.0 : beta( a, b ) ) - fract : fract; // eslint-disable-line max-len\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default ibetaImp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/beta.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport binomcoef from './../../../../base/special/binomcoef';\nimport floor from './../../../../base/special/floor';\nimport pow from './../../../../base/special/pow';\nimport MIN_VALUE from '@stdlib/constants/float64/smallest-normal';\n\n\n// MAIN //\n\n/**\n* For integer arguments we can relate the incomplete beta to the complement of the binomial distribution cdf and use this finite sum.\n*\n* @private\n* @param {NonNegativeInteger} n - number of trials\n* @param {NonNegativeInteger} k - function input\n* @param {Probability} x - function input\n* @param {Probability} y - probability equal to `1-x`\n* @returns {number} sum\n*/\nfunction binomialCCDF( n, k, x, y ) {\n\tvar startTerm;\n\tvar result;\n\tvar start;\n\tvar term;\n\tvar i;\n\n\tresult = pow( x, n );\n\tif ( result > MIN_VALUE ) {\n\t\tterm = result;\n\t\tfor ( i = floor( n - 1 ); i > k; i-- ) {\n\t\t\tterm *= ((i + 1) * y) / ((n - i) * x);\n\t\t\tresult += term;\n\t\t}\n\t} else {\n\t\t// First term underflows so we need to start at the mode of the distribution and work outwards:\n\t\tstart = floor( n * x );\n\t\tif ( start <= k + 1 ) {\n\t\t\tstart = floor( k + 2 );\n\t\t}\n\t\tresult = pow( x, start ) * pow( y, n - start );\n\t\tresult *= binomcoef( floor(n), floor(start) );\n\t\tif ( result === 0.0 ) {\n\t\t\t// OK, starting slightly above the mode didn't work, we'll have to sum the terms the old fashioned way:\n\t\t\tfor ( i = start - 1; i > k; i-- ) {\n\t\t\t\tresult += pow( x, i ) * pow( y, n - i );\n\t\t\t\tresult *= binomcoef( floor(n), floor(i) );\n\t\t\t}\n\t\t} else {\n\t\t\tterm = result;\n\t\t\tstartTerm = result;\n\t\t\tfor ( i = start - 1; i > k; i-- ) {\n\t\t\t\tterm *= ((i + 1) * y) / ((n - i) * x);\n\t\t\t\tresult += term;\n\t\t\t}\n\t\t\tterm = startTerm;\n\t\t\tfor ( i = start + 1; i <= n; i++ ) {\n\t\t\t\tterm *= (n - i + 1) * x / (i * y);\n\t\t\t\tresult += term;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default binomialCCDF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport compute from './assign.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the incomplete beta function and its first derivative.\n*\n* @param {Probability} x - function input\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {boolean} regularized - boolean indicating if the function should evaluate the regularized boolean beta function\n* @param {boolean} upper - boolean indicating if the function should return the upper tail of the incomplete beta function instead\n* @returns {Array} function value and first derivative\n*\n* @example\n* var out = kernelBetainc( 0.5, 2.0, 2.0, false, false );\n* // returns [ ~0.083, ~1.5 ]\n*\n* @example\n* var out = kernelBetainc( 0.2, 1.0, 2.0, true, false );\n* // returns [ 0.36, 1.6 ]\n*/\nfunction kernelBetainc( x, a, b, regularized, upper ) {\n\treturn compute( x, a, b, regularized, upper, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default kernelBetainc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as kernelBetainc } from './../../../../base/special/kernel-betainc';\n\n\n// MAIN //\n\n/**\n* Evaluates the incomplete beta function.\n*\n* @param {Probability} x - function parameter\n* @param {NonNegativeNumber} a - function parameter\n* @param {NonNegativeNumber} b - function parameter\n* @param {boolean} [regularized=true] - boolean indicating if the function should evaluate the regularized or non-regularized incomplete beta function\n* @param {boolean} [upper=false] - boolean indicating if the function should return the upper tail of the incomplete beta function\n* @returns {number} function value\n*\n* @example\n* var y = betainc( 0.5, 2.0, 2.0 );\n* // returns 0.5\n*\n* @example\n* var y = betainc( 0.5, 2.0, 2.0, false );\n* // returns ~0.083\n*\n* @example\n* var y = betainc( 0.2, 1.0, 2.0 );\n* // returns 0.36\n*/\nfunction betainc( x, a, b, regularized, upper ) {\n\tvar out = [ 0.0, 0.0 ];\n\tregularized = ( regularized === false ) ? false : true; // eslint-disable-line no-unneeded-ternary\n\tupper = ( upper === true ) ? true : false; // eslint-disable-line no-unneeded-ternary\n\tkernelBetainc( x, a, b, regularized, upper, out, 1, 0 );\n\treturn out[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default betainc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate the incomplete beta function and its first derivative.\n*\n* @module @stdlib/math/base/special/kernel-betainc\n*\n* @example\n* import kernelBetainc from '@stdlib/math/base/special/kernel-betainc';\n*\n* var out = kernelBetainc( 0.5, 2.0, 2.0, false, false );\n* // returns [ ~0.083, ~1.5 ]\n*\n* out = kernelBetainc( 0.2, 1.0, 2.0, true, false );\n* // returns [ 0.36, 1.6 ]\n*\n* @example\n* import kernelBetainc from '@stdlib/math/base/special/kernel-betainc';\n*\n* var arr = [ 0.0, 0.0 ];\n* var out = kernelBetainc.assign( 0.2, 1.0, 2.0, true, true, arr, 1, 0 );\n* // returns [ 0.64, 1.6 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_81_0/boost/math/special_functions/detail/erf_inv.hpp}. This implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport sqrt from './../../../../base/special/sqrt';\nimport ln from './../../../../base/special/ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport rationalFcnR1 from './rational_p1q1.js';\nimport rationalFcnR2 from './rational_p2q2.js';\nimport rationalFcnR3 from './rational_p3q3.js';\nimport rationalFcnR4 from './rational_p4q4.js';\nimport rationalFcnR5 from './rational_p5q5.js';\n\n\n// VARIABLES //\n\nvar Y1 = 8.91314744949340820313e-2;\nvar Y2 = 2.249481201171875;\nvar Y3 = 8.07220458984375e-1;\nvar Y4 = 9.3995571136474609375e-1;\nvar Y5 = 9.8362827301025390625e-1;\n\n\n// MAIN //\n\n/**\n* Evaluates the inverse complementary error function.\n*\n* Note that\n*\n* ```tex\n* \\operatorname{erfc^{-1}}(1-z) = \\operatorname{erf^{-1}}(z)\n* ```\n*\n* ## Method\n*\n* 1. For \\\\(|x| \\leq 0.5\\\\), we evaluate the inverse error function using the rational approximation\n*\n* ```tex\n* \\operatorname{erf^{-1}}(x) = x(x+10)(\\mathrm{Y} + \\operatorname{R}(x))\n* ```\n*\n* where \\\\(Y\\\\) is a constant and \\\\(\\operatorname{R}(x)\\\\) is optimized for a low absolute error compared to \\\\(|Y|\\\\).\n*\n* \n*\n* Max error \\\\(2.001849\\mbox{e-}18\\\\). Maximum deviation found (error term at infinite precision) \\\\(8.030\\mbox{e-}21\\\\).\n*\n* \n*\n* 2. For \\\\(0.5 > 1-|x| \\geq 0\\\\), we evaluate the inverse error function using the rational approximation\n*\n* ```tex\n* \\operatorname{erf^{-1}} = \\frac{\\sqrt{-2 \\cdot \\ln(1-x)}}{\\mathrm{Y} + \\operatorname{R}(1-x)}\n* ```\n*\n* where \\\\(Y\\\\) is a constant, and \\\\(\\operatorname{R}(q)\\\\) is optimized for a low absolute error compared to \\\\(Y\\\\).\n*\n* \n*\n* Max error \\\\(7.403372\\mbox{e-}17\\\\). Maximum deviation found (error term at infinite precision) \\\\(4.811\\mbox{e-}20\\\\).\n*\n* \n*\n* 3. For \\\\(1-|x| < 0.25\\\\), we have a series of rational approximations all of the general form\n*\n* ```tex\n* p = \\sqrt{-\\ln(1-x)}\n* ```\n*\n* Accordingly, the result is given by\n*\n* ```tex\n* \\operatorname{erf^{-1}}(x) = p(\\mathrm{Y} + \\operatorname{R}(p-B))\n* ```\n*\n* where \\\\(Y\\\\) is a constant, \\\\(B\\\\) is the lowest value of \\\\(p\\\\) for which the approximation is valid, and \\\\(\\operatorname{R}(x-B)\\\\) is optimized for a low absolute error compared to \\\\(Y\\\\).\n*\n* \n*\n* Almost all code will only go through the first or maybe second approximation. After that we are dealing with very small input values.\n*\n* - If \\\\(p < 3\\\\), max error \\\\(1.089051\\mbox{e-}20\\\\).\n* - If \\\\(p < 6\\\\), max error \\\\(8.389174\\mbox{e-}21\\\\).\n* - If \\\\(p < 18\\\\), max error \\\\(1.481312\\mbox{e-}19\\\\).\n* - If \\\\(p < 44\\\\), max error \\\\(5.697761\\mbox{e-}20\\\\).\n* - If \\\\(p \\geq 44\\\\), max error \\\\(1.279746\\mbox{e-}20\\\\).\n*\n* \n*\n* \n*\n* The Boost library can accommodate \\\\(80\\\\) and \\\\(128\\\\) bit long doubles. JavaScript only supports a \\\\(64\\\\) bit double (IEEE 754). Accordingly, the smallest \\\\(p\\\\) (in JavaScript at the time of this writing) is \\\\(\\sqrt{-\\ln(\\sim5\\mbox{e-}324)} = 27.284429111150214\\\\).\n*\n* \n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = erfcinv( 0.5 );\n* // returns ~0.4769\n*\n* @example\n* var y = erfcinv( 0.8 );\n* // returns ~0.1791\n*\n* @example\n* var y = erfcinv( 0.0 );\n* // returns Infinity\n*\n* @example\n* var y = erfcinv( 2.0 );\n* // returns -Infinity\n*\n* @example\n* var y = erfcinv( NaN );\n* // returns NaN\n*/\nfunction erfcinv( x ) {\n\tvar sign;\n\tvar qs;\n\tvar q;\n\tvar g;\n\tvar r;\n\n\t// Special case: NaN\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\t// Special case: 0\n\tif ( x === 0.0 ) {\n\t\treturn PINF;\n\t}\n\t// Special case: 2\n\tif ( x === 2.0 ) {\n\t\treturn NINF;\n\t}\n\t// Special case: 1\n\tif ( x === 1.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x > 2.0 || x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\t// Argument reduction (reduce to interval [0,1]). If `x` is outside [0,1], we can take advantage of the complementary error function reflection formula: `erfc(-z) = 2 - erfc(z)`, by negating the result once finished.\n\tif ( x > 1.0 ) {\n\t\tsign = -1.0;\n\t\tq = 2.0 - x;\n\t} else {\n\t\tsign = 1.0;\n\t\tq = x;\n\t}\n\tx = 1.0 - q;\n\n\t// x = 1-q <= 0.5\n\tif ( x <= 0.5 ) {\n\t\tg = x * ( x + 10.0 );\n\t\tr = rationalFcnR1( x );\n\t\treturn sign * ( (g*Y1) + (g*r) );\n\t}\n\t// q >= 0.25\n\tif ( q >= 0.25 ) {\n\t\tg = sqrt( -2.0 * ln(q) );\n\t\tq -= 0.25;\n\t\tr = rationalFcnR2( q );\n\t\treturn sign * ( g / (Y2+r) );\n\t}\n\tq = sqrt( -ln( q ) );\n\n\t// q < 3\n\tif ( q < 3.0 ) {\n\t\tqs = q - 1.125;\n\t\tr = rationalFcnR3( qs );\n\t\treturn sign * ( (Y3*q) + (r*q) );\n\t}\n\t// q < 6\n\tif ( q < 6.0 ) {\n\t\tqs = q - 3.0;\n\t\tr = rationalFcnR4( qs );\n\t\treturn sign * ( (Y4*q) + (r*q) );\n\t}\n\t// q < 18\n\tqs = q - 6.0;\n\tr = rationalFcnR5( qs );\n\treturn sign * ( (Y5*q) + (r*q) );\n}\n\n\n// EXPORTS //\n\nexport default erfcinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0005087819496582806;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0005087819496582806 + (x * (-0.008368748197417368 + (x * (0.03348066254097446 + (x * (-0.012692614766297404 + (x * (-0.03656379714117627 + (x * (0.02198786811111689 + (x * (0.008226878746769157 + (x * (-0.005387729650712429 + (x * (0.0 + (x * 0.0))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-0.9700050433032906 + (x * (-1.5657455823417585 + (x * (1.5622155839842302 + (x * (0.662328840472003 + (x * (-0.7122890234154284 + (x * (-0.05273963823400997 + (x * (0.07952836873415717 + (x * (-0.0023339375937419 + (x * 0.0008862163904564247))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0 + (x * (-0.005387729650712429 + (x * (0.008226878746769157 + (x * (0.02198786811111689 + (x * (-0.03656379714117627 + (x * (-0.012692614766297404 + (x * (0.03348066254097446 + (x * (-0.008368748197417368 + (x * -0.0005087819496582806))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0008862163904564247 + (x * (-0.0023339375937419 + (x * (0.07952836873415717 + (x * (-0.05273963823400997 + (x * (-0.7122890234154284 + (x * (0.662328840472003 + (x * (1.5622155839842302 + (x * (-1.5657455823417585 + (x * (-0.9700050433032906 + (x * 1.0))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.20243350835593876;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.20243350835593876 + (x * (0.10526468069939171 + (x * (8.3705032834312 + (x * (17.644729840837403 + (x * (-18.851064805871424 + (x * (-44.6382324441787 + (x * (17.445385985570866 + (x * (21.12946554483405 + (x * -3.6719225470772936))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (6.242641248542475 + (x * (3.971343795334387 + (x * (-28.66081804998 + (x * (-20.14326346804852 + (x * (48.560921310873994 + (x * (10.826866735546016 + (x * (-22.643693341313973 + (x * 1.7211476576120028))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -3.6719225470772936 + (x * (21.12946554483405 + (x * (17.445385985570866 + (x * (-44.6382324441787 + (x * (-18.851064805871424 + (x * (17.644729840837403 + (x * (8.3705032834312 + (x * (0.10526468069939171 + (x * -0.20243350835593876))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.7211476576120028 + (x * (-22.643693341313973 + (x * (10.826866735546016 + (x * (48.560921310873994 + (x * (-20.14326346804852 + (x * (-28.66081804998 + (x * (3.971343795334387 + (x * (6.242641248542475 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.1311027816799519;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.1311027816799519 + (x * (-0.16379404719331705 + (x * (0.11703015634199525 + (x * (0.38707973897260434 + (x * (0.3377855389120359 + (x * (0.14286953440815717 + (x * (0.029015791000532906 + (x * (0.0021455899538880526 + (x * (-6.794655751811263e-7 + (x * (2.8522533178221704e-8 + (x * -6.81149956853777e-10))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (3.4662540724256723 + (x * (5.381683457070069 + (x * (4.778465929458438 + (x * (2.5930192162362027 + (x * (0.848854343457902 + (x * (0.15226433829533179 + (x * (0.011059242293464892 + (x * (0.0 + (x * (0.0 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -6.81149956853777e-10 + (x * (2.8522533178221704e-8 + (x * (-6.794655751811263e-7 + (x * (0.0021455899538880526 + (x * (0.029015791000532906 + (x * (0.14286953440815717 + (x * (0.3377855389120359 + (x * (0.38707973897260434 + (x * (0.11703015634199525 + (x * (-0.16379404719331705 + (x * -0.1311027816799519))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (0.0 + (x * (0.011059242293464892 + (x * (0.15226433829533179 + (x * (0.848854343457902 + (x * (2.5930192162362027 + (x * (4.778465929458438 + (x * (5.381683457070069 + (x * (3.4662540724256723 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0350353787183178;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0350353787183178 + (x * (-0.0022242652921344794 + (x * (0.018557330651423107 + (x * (0.009508047013259196 + (x * (0.0018712349281955923 + (x * (0.00015754461742496055 + (x * (0.00000460469890584318 + (x * (-2.304047769118826e-10 + (x * 2.6633922742578204e-12))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.3653349817554064 + (x * (0.7620591645536234 + (x * (0.22009110576413124 + (x * (0.03415891436709477 + (x * (0.00263861676657016 + (x * (0.00007646752923027944 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 2.6633922742578204e-12 + (x * (-2.304047769118826e-10 + (x * (0.00000460469890584318 + (x * (0.00015754461742496055 + (x * (0.0018712349281955923 + (x * (0.009508047013259196 + (x * (0.018557330651423107 + (x * (-0.0022242652921344794 + (x * -0.0350353787183178))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (0.00007646752923027944 + (x * (0.00263861676657016 + (x * (0.03415891436709477 + (x * (0.22009110576413124 + (x * (0.7620591645536234 + (x * (1.3653349817554064 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.016743100507663373;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.016743100507663373 + (x * (-0.0011295143874558028 + (x * (0.001056288621524929 + (x * (0.00020938631748758808 + (x * (0.000014962478375834237 + (x * (4.4969678992770644e-7 + (x * (4.625961635228786e-9 + (x * (-2.811287356288318e-14 + (x * 9.905570997331033e-17))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.5914293448864175 + (x * (0.1381518657490833 + (x * (0.016074608709367652 + (x * (0.0009640118070051656 + (x * (0.000027533547476472603 + (x * (2.82243172016108e-7 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 9.905570997331033e-17 + (x * (-2.811287356288318e-14 + (x * (4.625961635228786e-9 + (x * (4.4969678992770644e-7 + (x * (0.000014962478375834237 + (x * (0.00020938631748758808 + (x * (0.001056288621524929 + (x * (-0.0011295143874558028 + (x * -0.016743100507663373))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (2.82243172016108e-7 + (x * (0.000027533547476472603 + (x * (0.0009640118070051656 + (x * (0.016074608709367652 + (x * (0.1381518657490833 + (x * (0.5914293448864175 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/detail/t_distribution_inv.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaDeltaRatio from './../../../../base/special/gamma-delta-ratio';\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport sqrt from './../../../../base/special/sqrt';\nimport PI from '@stdlib/constants/float64/pi';\nimport polyval1 from './polyval_co14.js';\nimport polyval2 from './polyval_co15.js';\nimport polyval3 from './polyval_co16.js';\nimport polyval4 from './polyval_co17.js';\nimport polyval5 from './polyval_co18.js';\nimport polyval6 from './polyval_co19.js';\nimport polyval7 from './polyval_co20.js';\nimport polyval8 from './polyval_co21.js';\nimport polyval9 from './polyval_co22.js';\n\n\n// VARIABLES //\n\nvar c0 = 0.0;\n\n// Workspace for the polynomial coefficients:\nvar c = [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Evaluates Student's t quantiles via a body series expansion. Tail and body series are due to Shaw.\n*\n* ## References\n*\n* - Shaw, William T. 2006. \"Sampling Student's T distribution – use of the inverse cumulative distribution function.\" _Journal of Computational Finance_ 9 (4): 37–73. [www.mth.kcl.ac.uk/~shaww/web\\_page/papers/Tdistribution06.pdf](www.mth.kcl.ac.uk/~shaww/web_page/papers/Tdistribution06.pdf).\n*\n* @private\n* @param {PositiveNumber} df - degrees of freedom\n* @param {Probability} u - input probability\n* @returns {number} function value\n*/\nfunction inverseStudentsTBodySeries( df, u ) {\n\tvar idf;\n\tvar v;\n\n\t// Body series for small N, start with Eq 56 of Shaw:\n\tv = gammaDeltaRatio( df/2, 0.5 ) * sqrt( df*PI ) * ( u-0.5 );\n\n\t// Figure out what the coefficients are. They depend only on the degrees of freedom (Eq 57 of Shaw):\n\tidf = 1.0 / df;\n\tc[ 1 ] = polyval1( idf );\n\tc[ 2 ] = polyval2( idf );\n\tc[ 3 ] = polyval3( idf );\n\tc[ 4 ] = polyval4( idf );\n\tc[ 5 ] = polyval5( idf );\n\tc[ 6 ] = polyval6( idf );\n\tc[ 7 ] = polyval7( idf );\n\tc[ 8 ] = polyval8( idf );\n\tc[ 9 ] = polyval9( idf );\n\n\t// Result is then an odd polynomial in v (see Eq 56 of Shaw)...\n\treturn c0 + ( v*evalpoly( c, v*v ) );\n}\n\n\n// EXPORTS //\n\nexport default inverseStudentsTBodySeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666666666666666;\n\t}\n\treturn 0.16666666666666666 + (x * 0.16666666666666666);\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.058333333333333334;\n\t}\n\treturn 0.058333333333333334 + (x * (0.06666666666666667 + (x * 0.008333333333333333))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0251984126984127;\n\t}\n\treturn 0.0251984126984127 + (x * (0.026785714285714284 + (x * (0.0017857142857142857 + (x * 0.0001984126984126984))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.012039792768959435;\n\t}\n\treturn 0.012039792768959435 + (x * (0.010559964726631394 + (x * (-0.0011078042328042327 + (x * (0.0003747795414462081 + (x * 0.0000027557319223985893))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.003837005972422639;\n\t}\n\treturn 0.003837005972422639 + (x * (0.00610392115600449 + (x * (-0.0016095979637646305 + (x * (0.0005945867404200738 + (x * (-0.00006270542728876062 + (x * 2.505210838544172e-8))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0032177478835464946;\n\t}\n\treturn 0.0032177478835464946 + (x * (0.0010898206731540065 + (x * (-0.0012579159844784845 + (x * (0.0006908420797309686 + (x * (-0.00016376804137220805 + (x * (0.0000154012654012654 + (x * 1.6059043836821613e-10))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.001743826229834001;\n\t}\n\treturn 0.001743826229834001 + (x * (0.00003353097688001788 + (x * (-0.0007624513544032393 + (x * (0.0006451304695145635 + (x * (-0.000249472580470431 + (x * (0.000049255746366361444 + (x * (-0.0000039851014346715405 + (x * 7.647163731819816e-13))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0009647274732138864;\n\t}\n\treturn 0.0009647274732138864 + (x * (-0.0003110108632631878 + (x * (-0.00036307660358786886 + (x * (0.0005140660578834113 + (x * (-0.00029133414466938067 + (x * (0.00009086710793521991 + (x * (-0.000015303004486655377 + (x * (0.0000010914179173496788 + (x * 2.8114572543455206e-15))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0005422926281312969;\n\t}\n\treturn 0.0005422926281312969 + (x * (-0.0003694266780000966 + (x * (-0.00010230378073700413 + (x * (0.00035764655430568635 + (x * (-0.00028690924218514614 + (x * (0.00012645437628698076 + (x * (-0.000033202652391372056 + (x * (0.000004890304529197534 + (x * (-3.123956959982987e-7 + (x * 8.22063524662433e-18))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/detail/t_distribution_inv.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaDeltaRatio from './../../../../base/special/gamma-delta-ratio';\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport sqrt from './../../../../base/special/sqrt';\nimport pow from './../../../../base/special/pow';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// VARIABLES //\n\n// Array for the coefficients d(k), these depend only on the number of degrees of freedom df, so at least in theory we could tabulate these for fixed df, see p15 of Shaw:\nvar d = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Evaluates Student's t quantiles via a tail series expansion. Tail and body series are due to Shaw.\n*\n* ## References\n*\n* - Shaw, William T. 2006. \"Sampling Student's T distribution – use of the inverse cumulative distribution function.\" _Journal of Computational Finance_ 9 (4): 37–73. [www.mth.kcl.ac.uk/~shaww/web\\_page/papers/Tdistribution06.pdf](www.mth.kcl.ac.uk/~shaww/web_page/papers/Tdistribution06.pdf).\n*\n* @private\n* @param {number} df - degrees of freedom\n* @param {number} v - function value\n* @returns {number} tail value\n*/\nfunction inverseStudentsTTailSeries( df, v ) { // eslint-disable-line id-length\n\tvar result;\n\tvar power;\n\tvar div;\n\tvar np2;\n\tvar np4;\n\tvar np6;\n\tvar rn;\n\tvar w;\n\n\t// Tail series expansion, see section 6 of Shaw's paper. `w` is calculated using Eq 60:\n\tw = gammaDeltaRatio( df/2.0, 0.5 ) * sqrt( df*PI ) * v;\n\n\t// Define some variables:\n\tnp2 = df + 2.0;\n\tnp4 = df + 4.0;\n\tnp6 = df + 6.0;\n\n\td[ 0 ] = 1.0;\n\td[ 1 ] = -(df+1.0) / (2.0*np2);\n\tnp2 *= (df + 2.0);\n\td[ 2 ] = -df * (df+1.0) * (df+3.0) / (8.0*np2*np4);\n\tnp2 *= df + 2.0;\n\td[ 3 ] = -df * (df+1.0) * (df+5.0) * (((3.0*df) + 7.0) * df - 2.0) / (48.0*np2*np4*np6); // eslint-disable-line max-len, no-mixed-operators\n\tnp2 *= (df + 2.0);\n\tnp4 *= (df + 4.0);\n\td[ 4 ] = -df * (df+1.0) * (df+7.0) * ( (((((15.0*df) + 154.0) * df + 465.0) * df + 286.0) * df - 336.0) * df + 64.0) / (384.0*np2*np4*np6*(df+8.0)); // eslint-disable-line max-len, no-mixed-operators\n\tnp2 *= (df + 2.0);\n\td[ 5 ] = -df * (df+1.0) * (df+3.0) * (df+9.0) * (((((((35.0 * df + 452.0) * df+1573.0) * df + 600.0) * df - 2020.0) * df) + 928.0) * df - 128.0) / (1280.0*np2*np4*np6*(df+8.0) * (df+10.0)); // eslint-disable-line max-len, no-mixed-operators\n\tnp2 *= (df + 2.0);\n\tnp4 *= (df + 4.0);\n\tnp6 *= (df + 6.0);\n\td[ 6 ] = -df * (df+1.0) * (df+11.0) * ((((((((((((945.0*df) + 31506.0) * df + 425858.0) * df + 2980236.0) * df + 11266745.0) * df + 20675018.0) * df + 7747124.0) * df - 22574632.0) * df - 8565600.0) * df + 18108416.0) * df - 7099392.0) * df + 884736.0) / (46080.0*np2*np4*np6*(df+8.0) * (df+10.0) * (df+12.0)); // eslint-disable-line max-len, no-mixed-operators\n\n\t// Now bring everything together to provide the result this is Eq 62 of Shaw:\n\trn = sqrt( df );\n\tdiv = pow( rn*w, 1.0/df );\n\tpower = div * div;\n\tresult = evalpoly( d, power );\n\tresult *= rn;\n\tresult /= div;\n\treturn -result;\n}\n\n\n// EXPORTS //\n\nexport default inverseStudentsTTailSeries;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_61_0/boost/math/special_functions/detail/t_distribution_inv.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n/* eslint-disable no-mixed-operators */\n\n'use strict';\n\n// MODULES //\n\nimport erfcinv from './../../../../base/special/erfcinv';\nimport expm1 from './../../../../base/special/expm1';\nimport sqrt from './../../../../base/special/sqrt';\nimport pow from './../../../../base/special/pow';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport SQRT2 from '@stdlib/constants/float64/sqrt-two';\n\n\n// MAIN //\n\n/**\n* Evaluates Student's t quantiles via a method due to Hill.\n*\n* ## References\n*\n* - Hill, G. W. 1970. \"Algorithm 396: Student's T-Quantiles.\" _Communications of the ACM_ 13 (10). New York, NY, USA: ACM: 619–20. doi:[10.1145/355598.355600](https://doi.org/10.1145/355598.355600).\n*\n* @private\n* @param {PositiveNumber} ndf - degrees of freedom\n* @param {Probability} u - input probability\n* @returns {number} function value\n*/\nfunction inverseStudentsTHill( ndf, u ) {\n\tvar a;\n\tvar b;\n\tvar c;\n\tvar d;\n\tvar q;\n\tvar x;\n\tvar y;\n\n\tif ( ndf > 1e20 ) {\n\t\treturn -erfcinv( 2 * u ) * SQRT2;\n\t}\n\ta = 1.0 / ( ndf - 0.5 );\n\tb = 48.0 / (a * a);\n\tc = ( ( ( ( (20700.0*a/b) - 98.0 ) * a ) - 16.0 ) * a ) + 96.36;\n\td = ( ( ( (94.5/(b+c)) - 3.0 ) / b ) + 1.0 ) * sqrt( a * HALF_PI ) * ndf;\n\ty = pow( d * 2.0 * u, 2.0 / ndf );\n\n\tif ( y > ( 0.05 + a ) ) {\n\t\t// Asymptotic inverse expansion about normal:\n\t\tx = -erfcinv( 2.0 * u ) * SQRT2;\n\t\ty = x * x;\n\n\t\tif ( ndf < 5.0 ) {\n\t\t\tc += 0.3 * ( ndf-4.5 ) * ( x + 0.6 );\n\t\t}\n\t\tc += ( ( ( ( ( ( (0.05*d*x)-5.0 ) * x ) - 7.0 ) * x )- 2.0 ) * x ) + b;\n\t\ty = ((((((0.4*y+6.3)*y)+36.0) * y + 94.5) / c - y - 3.0) / b + 1.0) * x;\n\t\ty = expm1( a * y * y );\n\t} else {\n\t\ty = ((1.0 / ( ( (ndf+6.0) / (ndf*y) - 0.089 * d - 0.822 ) *\n\t\t(ndf+2.0) * 3.0 ) + 0.5 / (ndf+4.0)) * y - 1.0) *\n\t\t(ndf+1.0) / (ndf+2.0) + 1.0 / y;\n\t}\n\tq = sqrt( ndf * y );\n\treturn -q;\n}\n\n\n// EXPORTS //\n\nexport default inverseStudentsTHill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/detail/t_distribution_inv.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport erfcinv from './../../../../base/special/erfcinv';\nimport floor from './../../../../base/special/floor';\nimport ldexp from './../../../../base/special/ldexp';\nimport round from './../../../../base/special/round';\nimport acos from './../../../../base/special/acos';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport cos from './../../../../base/special/cos';\nimport pow from './../../../../base/special/pow';\nimport sin from './../../../../base/special/sin';\nimport SQRT2 from '@stdlib/constants/float64/sqrt-two';\nimport PI from '@stdlib/constants/float64/pi';\nimport inverseStudentsTBodySeries from './inverse_students_t_body_series.js';\nimport inverseStudentsTTailSeries from './inverse_students_t_tail_series.js';\nimport inverseStudentsTHill from './inverse_students_t_hill.js';\n\n\n// VARIABLES //\n\nvar DF_THRESHOLD = 0x10000000; // 2^28\nvar ONE_THIRD = 1.0 / 3.0;\nvar EXP = ( 2.0 * 53.0 ) / 3.0;\nvar C = 0.85498797333834849467655443627193;\n\n\n// MAIN //\n\n/**\n* Evaluates Student's t quantiles.\n*\n* @private\n* @param {PositiveNumber} df - degrees of freedom\n* @param {Probability} u - input probability\n* @param {Probability} v - probability equal to `1-u`\n* @returns {number} function value\n*/\nfunction inverseStudentsT( df, u, v ) {\n\tvar crossover;\n\tvar tolerance;\n\tvar rootAlpha;\n\tvar invert;\n\tvar result;\n\tvar alpha;\n\tvar tmp;\n\tvar p0;\n\tvar p2;\n\tvar p4;\n\tvar p5;\n\tvar p;\n\tvar r;\n\tvar x;\n\tvar a;\n\tvar b;\n\n\tresult = 0;\n\tif ( u > v ) {\n\t\t// Function is symmetric, so invert it:\n\t\ttmp = v;\n\t\tv = u;\n\t\tu = tmp;\n\t\tinvert = true;\n\t} else {\n\t\tinvert = false;\n\t}\n\tif ( floor(df) === df && df < 20 ) {\n\t\t// We have integer degrees of freedom, try for the special cases first:\n\t\ttolerance = ldexp( 1.0, EXP );\n\n\t\tswitch ( floor( df ) ) {\n\t\tcase 1:\n\t\t\t// `df = 1` is the same as the Cauchy distribution, see Shaw Eq 35:\n\t\t\tif ( u === 0.5 ) {\n\t\t\t\tresult = 0.0;\n\t\t\t} else {\n\t\t\t\tresult = -cos( PI * u ) / sin( PI * u );\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t// `df = 2` has an exact result, see Shaw Eq 36:\n\t\t\tresult = ( (2.0*u) - 1.0 ) / sqrt( 2.0 * u * v );\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\t// `df = 4` has an exact result, see Shaw Eq 38 & 39:\n\t\t\talpha = 4.0 * u * v;\n\t\t\trootAlpha = sqrt( alpha );\n\t\t\tr = 4 * cos( acos( rootAlpha ) / 3.0 ) / rootAlpha;\n\t\t\tx = sqrt( r - 4.0 );\n\t\t\tresult = ( u - 0.5 < 0.0 ) ? -x : x;\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\t// We get numeric overflow in this area:\n\t\t\tif ( u < 1.0e-150 ) {\n\t\t\t\treturn ( ( invert ) ? -1 : 1 ) * inverseStudentsTHill( df, u );\n\t\t\t}\n\t\t\t// Newton-Raphson iteration of a polynomial case, choice of seed value is taken from Shaw's online supplement:\n\t\t\ta = 4.0 * ( u - (u*u) ); // 1 - 4 * (u - 0.5f) * (u - 0.5f);\n\t\t\tb = pow( a, ONE_THIRD );\n\t\t\tp = 6.0 * ( 1.0 + ( C * ( (1.0/b) - 1.0 ) ) );\n\t\t\tdo {\n\t\t\t\tp2 = p * p;\n\t\t\t\tp4 = p2 * p2;\n\t\t\t\tp5 = p * p4;\n\t\t\t\tp0 = p;\n\n\t\t\t\t// Next term is given by Eq 41:\n\t\t\t\tp = 2.0 * ( (8.0*a*p5) - (270.0*p2) + 2187 ) /\n\t\t\t\t\t( 5.0 * ( (4.0*a*p4) - (216.0*p) - 243.0 ) );\n\t\t\t} while ( abs( (p - p0) / p ) > tolerance );\n\n\t\t\t// Use Eq 45 to extract the result:\n\t\t\tp = sqrt( p - df );\n\t\t\tresult = ( u - 0.5 < 0.0 ) ? -p : p;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tif ( df > DF_THRESHOLD ) { // 2^28\n\t\t\t\tresult = erfcinv( 2.0 * u ) * SQRT2;\n\t\t\t} else if ( df < 3 ) {\n\t\t\t\t// Use a roughly linear scheme to choose between Shaw's tail series and body series:\n\t\t\t\tcrossover = 0.2742 - ( df * 0.0242143 );\n\t\t\t\tif ( u > crossover ) {\n\t\t\t\t\tresult = inverseStudentsTBodySeries( df, u );\n\t\t\t\t} else {\n\t\t\t\t\tresult = inverseStudentsTTailSeries( df, u );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Use Hill's method except in the extreme tails where we use Shaw's tail series. The crossover point is roughly exponential in -df:\n\t\t\t\tcrossover = ldexp( 1.0, round( df / -0.654 ) );\n\t\t\t\tif ( u > crossover ) {\n\t\t\t\t\tresult = inverseStudentsTHill( df, u );\n\t\t\t\t} else {\n\t\t\t\t\tresult = inverseStudentsTTailSeries( df, u );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else if ( df > DF_THRESHOLD ) {\n\t\tresult = -erfcinv( 2.0 * u ) * SQRT2;\n\t} else if ( df < 3 ) {\n\t\t// Use a roughly linear scheme to choose between Shaw's tail series and body series:\n\t\tcrossover = 0.2742 - ( df * 0.0242143 );\n\t\tif ( u > crossover ) {\n\t\t\tresult = inverseStudentsTBodySeries( df, u );\n\t\t} else {\n\t\t\tresult = inverseStudentsTTailSeries( df, u );\n\t\t}\n\t} else {\n\t\t// Use Hill's method except in the extreme tails where we use Shaw's tail series. The crossover point is roughly exponential in -df:\n\t\tcrossover = ldexp( 1.0, round( df / -0.654 ) );\n\t\tif ( u > crossover ) {\n\t\t\tresult = inverseStudentsTHill( df, u );\n\t\t} else {\n\t\t\tresult = inverseStudentsTTailSeries( df, u );\n\t\t}\n\t}\n\treturn ( invert ) ? -result : result;\n}\n\n\n// EXPORTS //\n\nexport default inverseStudentsT;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/detail/t_distribution_inv.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport inverseStudentsT from './inverse_students_t.js';\n\n\n// MAIN //\n\n/**\n* Returns the inverse of the incomplete beta function via the Student t distribution.\n*\n* @private\n* @param {PositiveNumber} a - function parameter\n* @param {Probability} p - probability value\n* @param {Object} py - placeholder object holding one minus the returned value\n* @returns {number} function value\n*/\nfunction findIBetaInvFromTDist( a, p, py ) {\n\tvar df;\n\tvar u;\n\tvar v;\n\tvar t;\n\n\tu = p / 2.0;\n\tv = 1.0 - u;\n\tdf = a * 2.0;\n\tt = inverseStudentsT( df, u, v );\n\tif ( py ) {\n\t\tpy.value = t * t / ( df + ( t*t ) );\n\t}\n\treturn df / ( df + ( t*t ) );\n}\n\n\n// EXPORTS //\n\nexport default findIBetaInvFromTDist;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport erfcinv from './../../../../base/special/erfcinv';\nimport sqrt from './../../../../base/special/sqrt';\nimport exp from './../../../../base/special/exp';\nimport SQRT2 from '@stdlib/constants/float64/sqrt-two';\n\n\n// VARIABLES //\n\n// Workspaces for the polynomial coefficients:\nvar workspace = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];\nvar terms = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Carries out the first method by Temme (described in section 2).\n*\n* ## References\n*\n* - Temme, N. M. 1992. \"Incomplete Laplace Integrals: Uniform Asymptotic Expansion with Application to the Incomplete Beta Function.\" _Journal of Computational and Applied Mathematics_ 41 (1–2): 1638–63. doi:[10.1016/0377-0427(92)90244-R](https://doi.org/10.1016/0377-0427(92)90244-R).\n*\n* @private\n* @param {PositiveNumber} a - function parameter\n* @param {PositiveNumber} b - function parameter\n* @param {Probability} z - function parameter\n* @returns {number} function value\n*/\nfunction temme1( a, b, z ) {\n\tvar eta0;\n\tvar eta2;\n\tvar eta;\n\tvar B2;\n\tvar B3;\n\tvar B;\n\tvar c;\n\n\t// Get the first approximation for eta from the inverse error function (Eq: 2.9 and 2.10):\n\teta0 = erfcinv( 2.0 * z );\n\teta0 /= -sqrt( a / 2.0 );\n\n\tterms[ 0 ] = eta0;\n\n\t// Calculate powers:\n\tB = b - a;\n\tB2 = B * B;\n\tB3 = B2 * B;\n\n\t// Calculate correction terms:\n\n\t// See eq following 2.15:\n\tworkspace[ 0 ] = -B * SQRT2 / 2;\n\tworkspace[ 1 ] = ( 1 - (2.0*B) ) / 8.0;\n\tworkspace[ 2 ] = -(B * SQRT2 / 48.0);\n\tworkspace[ 3 ] = -1.0 / 192.0;\n\tworkspace[ 4 ] = -B * SQRT2 / 3840.0;\n\tworkspace[ 5 ] = 0.0;\n\tworkspace[ 6 ] = 0.0;\n\tterms[ 1 ] = evalpoly( workspace, eta0 );\n\n\t// Eq Following 2.17:\n\tworkspace[ 0 ] = B * SQRT2 * ( (3.0*B) - 2.0) / 12.0;\n\tworkspace[ 1 ] = ( (20.0*B2) - (12.0*B) + 1.0 ) / 128.0;\n\tworkspace[ 2 ] = B * SQRT2 * ( (20.0*B) - 1.0) / 960.0;\n\tworkspace[ 3 ] = ( (16.0*B2) + (30.0*B) - 15.0) / 4608.0;\n\tworkspace[ 4 ] = B * SQRT2 * ( (21.0*B) + 32) / 53760.0;\n\tworkspace[ 5 ] = (-(32.0*B2) + 63.0) / 368640.0;\n\tworkspace[ 6 ] = -B * SQRT2 * ( (120.0*B) + 17.0) / 25804480.0;\n\tterms[ 2 ] = evalpoly( workspace, eta0 );\n\n\t// Eq Following 2.17:\n\tworkspace[ 0 ] = B * SQRT2 * ( (-75*B2) + (80.0*B) - 16.0) / 480.0;\n\tworkspace[ 1 ] = ( (-1080.0*B3) + (868.0*B2) - (90.0*B) - 45.0) / 9216.0;\n\tworkspace[ 2 ] = B * SQRT2 * ( (-1190.0*B2) + (84.0*B) + 373.0) / 53760.0;\n\tworkspace[ 3 ] = ( (-2240.0*B3)-(2508.0*B2)+(2100.0*B)-165.0 ) / 368640.0;\n\tworkspace[ 4 ] = 0.0;\n\tworkspace[ 5 ] = 0.0;\n\tworkspace[ 6 ] = 0.0;\n\tterms[ 3 ] = evalpoly( workspace, eta0 );\n\n\t// Bring them together to get a final estimate for eta:\n\teta = evalpoly( terms, 1.0/a );\n\n\t// Now we need to convert eta to the return value `x`, by solving the appropriate quadratic equation:\n\teta2 = eta * eta;\n\tc = -exp( -eta2 / 2.0 );\n\tif ( eta2 === 0.0 ) {\n\t\treturn 0.5;\n\t}\n\treturn ( 1.0 + ( eta * sqrt( ( 1.0+c ) / eta2 ) ) ) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default temme1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport MAX_VALUE from '@stdlib/constants/float64/max';\n\n\n// VARIABLES //\n\nvar BIG = MAX_VALUE / 4.0;\n\n\n// MAIN //\n\n/**\n* Helper function used by root finding code to convert `eta` to `x`.\n*\n* @private\n* @param {number} t - first parameter\n* @param {number} a - second parameter\n* @returns {Function} root function\n*/\nfunction temmeRootFinder( t, a ) {\n\treturn roots;\n\n\t/**\n\t* Calculates roots.\n\t*\n\t* @private\n\t* @param {number} x - function value\n\t* @returns {Array} function roots\n\t*/\n\tfunction roots( x ) {\n\t\tvar f1;\n\t\tvar f;\n\t\tvar y;\n\n\t\ty = 1.0 - x;\n\t\tif ( y === 0.0 ) {\n\t\t\treturn [ -BIG, -BIG ];\n\t\t}\n\t\tif ( x === 0.0 ) {\n\t\t\treturn [ -BIG, -BIG ];\n\t\t}\n\t\tf = ln( x ) + ( a * ln( y ) ) + t;\n\t\tf1 = ( 1.0 / x ) - ( a / y );\n\t\treturn [ f, f1 ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default temmeRootFinder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Evaluates the signum function for a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var sign = signum( -5.0 );\n* // returns -1.0\n*\n* @example\n* var sign = signum( 5.0 );\n* // returns 1.0\n*\n* @example\n* var sign = signum( -0.0 );\n* // returns -0.0\n*\n* @example\n* var sign = signum( 0.0 );\n* // returns 0.0\n*\n* @example\n* var sign = signum( NaN );\n* // returns NaN\n*/\nfunction signum( x ) {\n\tif ( x === 0.0 || isnan( x ) ) {\n\t\treturn x; // addresses both +-0\n\t}\n\treturn ( x < 0.0 ) ? -1.0 : 1.0;\n}\n\n\n// EXPORTS //\n\nexport default signum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/tools/roots.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sign from './../../../../base/special/signum';\nimport abs from './../../../../base/special/abs';\nimport ldexp from './../../../../base/special/ldexp';\nimport MAX_VALUE from '@stdlib/constants/float64/max';\n\n\n// MAIN //\n\n/**\n* Performs root finding via second order Newton-Raphson iteration.\n*\n* @private\n* @param {Array} fun - two-element array of the function and its first derivative\n* @param {number} guess - initial starting value.\n* @param {number} min - minimum possible value for the result,used as initial lower bracket.\n* @param {number} max - maximum possible value for the result, used as initial upper bracket.\n* @param {PositiveInteger} digits - desired number of binary digits\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} function value\n*/\nfunction newtonRaphsonIterate( fun, guess, min, max, digits, maxIter ) {\n\tvar f0last;\n\tvar delta1;\n\tvar delta2;\n\tvar factor;\n\tvar result;\n\tvar count;\n\tvar delta;\n\tvar res;\n\tvar f0;\n\tvar f1;\n\n\tf0 = 0.0;\n\tf0last = 0.0;\n\tresult = guess;\n\n\tfactor = ldexp( 1.0, 1.0 - digits );\n\tdelta = MAX_VALUE;\n\tdelta1 = MAX_VALUE;\n\tdelta2 = MAX_VALUE;\n\n\tcount = maxIter;\n\tdo {\n\t\tf0last = f0;\n\t\tdelta2 = delta1;\n\t\tdelta1 = delta;\n\t\tres = fun(result);\n\t\tf0 = res[ 0 ];\n\t\tf1 = res[ 1 ];\n\t\tcount -= 1;\n\t\tif ( f0 === 0.0 ) {\n\t\t\tbreak;\n\t\t}\n\t\tif ( f1 === 0.0 ) {\n\t\t\t// Oops zero derivative!!!\n\t\t\tif ( f0last === 0.0 ) {\n\t\t\t\t// Must be the first iteration, pretend that we had a previous one at either min or max:\n\t\t\t\tif ( result === min ) {\n\t\t\t\t\tguess = max;\n\t\t\t\t} else {\n\t\t\t\t\tguess = min;\n\t\t\t\t}\n\t\t\t\tf0last = fun( guess );\n\t\t\t\tdelta = guess - result;\n\t\t\t}\n\t\t\tif ( sign(f0last) * sign(f0) < 0 ) {\n\t\t\t\t// We've crossed over so move in opposite direction to last step:\n\t\t\t\tif ( delta < 0 ) {\n\t\t\t\t\tdelta = (result - min) / 2.0;\n\t\t\t\t} else {\n\t\t\t\t\tdelta = (result - max) / 2.0;\n\t\t\t\t}\n\t\t\t} else if ( delta < 0 ) {\n\t\t\t\tdelta = (result - max) / 2.0;\n\t\t\t} else {\n\t\t\t\tdelta = (result - min) / 2.0;\n\t\t\t}\n\t\t} else {\n\t\t\tdelta = f0 / f1;\n\t\t}\n\t\tif ( abs(delta * 2.0) > abs(delta2) ) {\n\t\t\t// Last two steps haven't converged, try bisection:\n\t\t\tdelta = ( delta > 0.0 ) ? (result-min) / 2.0 : (result-max) / 2.0;\n\t\t}\n\t\tguess = result;\n\t\tresult -= delta;\n\t\tif ( result <= min ) {\n\t\t\tdelta = 0.5 * (guess - min);\n\t\t\tresult = guess - delta;\n\t\t\tif ( result === min || result === max ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if ( result >= max ) {\n\t\t\tdelta = 0.5 * (guess - max);\n\t\t\tresult = guess - delta;\n\t\t\tif ( result === min || result === max ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// Update brackets:\n\t\tif ( delta > 0.0 ) {\n\t\t\tmax = guess;\n\t\t} else {\n\t\t\tmin = guess;\n\t\t}\n\t}\n\twhile ( count && ( abs(result * factor) < abs(delta) ) );\n\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default newtonRaphsonIterate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport erfcinv from './../../../../base/special/erfcinv';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport ln from './../../../../base/special/ln';\nimport sqrt from './../../../../base/special/sqrt';\nimport sin from './../../../../base/special/sin';\nimport cos from './../../../../base/special/cos';\nimport temmeRootFinder from './root_finder.js';\nimport newtonRaphsonIterate from './newton_raphson.js';\nimport polyval1 from './polyval_co1.js';\nimport polyval2 from './polyval_co2.js';\nimport polyval3 from './polyval_co3.js';\nimport polyval4 from './polyval_co4.js';\nimport polyval5 from './polyval_co5.js';\nimport polyval6 from './polyval_co6.js';\nimport polyval7 from './polyval_co7.js';\nimport polyval8 from './polyval_co8.js';\nimport polyval9 from './polyval_co9.js';\nimport polyval10 from './polyval_co10.js';\nimport polyval11 from './polyval_co11.js';\nimport polyval12 from './polyval_co12.js';\nimport polyval13 from './polyval_co13.js';\n\n\n// VARIABLES //\n\n// Workspaces for polynomial coefficients:\nvar workspace = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];\nvar terms = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Carries out the second method by Temme (described in section 3).\n*\n* ## References\n*\n* - Temme, N. M. 1992. \"Incomplete Laplace Integrals: Uniform Asymptotic Expansion with Application to the Incomplete Beta Function.\" _Journal of Computational and Applied Mathematics_ 41 (1–2): 1638–63. doi:[10.1016/0377-0427(92)90244-R](https://doi.org/10.1016/0377-0427(92)90244-R).\n*\n* @private\n* @param {number} z - function parameter\n* @param {number} r - function parameter\n* @param {number} theta - function parameter\n* @returns {number} function value\n*/\nfunction temme2( z, r, theta ) {\n\tvar upper;\n\tvar lower;\n\tvar alpha;\n\tvar roots;\n\tvar eta0;\n\tvar eta;\n\tvar sc7;\n\tvar sc6;\n\tvar sc5;\n\tvar sc4;\n\tvar sc3;\n\tvar sc2;\n\tvar sc;\n\tvar lu;\n\tvar s2;\n\tvar c2;\n\tvar c;\n\tvar s;\n\tvar u;\n\tvar x;\n\n\t// Get first estimate for eta, see Eq 3.9 and 3.10, but note there is a typo in Eq 3.10:\n\teta0 = erfcinv( 2.0*z ) / (-sqrt( r/2.0 ));\n\n\ts = sin( theta );\n\tc = cos( theta );\n\n\t// Now we need to perturb eta0 to get eta, which we do by evaluating the polynomial in 1/r at the bottom of page 151, to do this we first need the error terms e1, e2 e3 which we'll fill into the array \"terms\". Since these terms are themselves polynomials, we'll need another array \"workspace\" to calculate those...\n\tterms[ 0 ] = eta0;\n\n\t// Some powers of sin(theta) cos(theta) that we'll need later:\n\ts2 = s * s;\n\tc2 = c * c;\n\tsc = s * c;\n\tsc2 = sc * sc;\n\tsc3 = sc2 * sc;\n\tsc4 = sc2 * sc2;\n\tsc5 = sc2 * sc3;\n\tsc6 = sc3 * sc3;\n\tsc7 = sc4 * sc3;\n\n\t// Calculate e1 and put it in terms[1], see the middle of page 151:\n\tworkspace[ 0 ] = ((2.0*s2) - 1.0) / ( 3.0*sc );\n\tworkspace[ 1 ] = -polyval1( s2 ) / (36.0*sc2);\n\tworkspace[ 2 ] = polyval2( s2 ) / (1620.0*sc3);\n\tworkspace[ 3 ] = polyval3( s2 ) / (6480.0*sc4);\n\tworkspace[ 4 ] = polyval4( s2 ) / (90720.0*sc5);\n\tworkspace[ 5 ] = 0.0;\n\tterms[ 1 ] = evalpoly( workspace, eta0 );\n\n\t// Now evaluate e2 and put it in terms[2]:\n\tworkspace[ 0 ] = -polyval5( s2 ) / (405.0*sc3);\n\tworkspace[ 1 ] = polyval6( s2 ) / (2592.0*sc4);\n\tworkspace[ 2 ] = -polyval7( s2 ) / (204120.0*sc5);\n\tworkspace[ 3 ] = -polyval8( s2 ) / (2099520.0*sc6);\n\tworkspace[ 4 ] = 0.0;\n\tworkspace[ 5 ] = 0.0;\n\tterms[ 2 ] = evalpoly( workspace, eta0 );\n\n\t// And e3, and put it in terms[3]:\n\tworkspace[ 0 ] = polyval9( s2 ) / (102060.0*sc5);\n\tworkspace[ 1 ] = -polyval10( s2 ) / (20995200.0*sc6);\n\tworkspace[ 2 ] = polyval11( s2 ) / (36741600.0*sc7);\n\tworkspace[ 3 ] = 0.0;\n\tworkspace[ 4 ] = 0.0;\n\tworkspace[ 5 ] = 0.0;\n\tterms[ 3 ] = evalpoly( workspace, eta0 );\n\n\t// Bring the correction terms together to evaluate eta; this is the last equation on page 151:\n\teta = evalpoly( terms, 1.0/r );\n\n\t// Now that we have eta we need to back solve for x, we seek the value of x that gives eta in Eq 3.2. The two methods used are described in section 5. Begin by defining a few variables we'll need later:\n\talpha = c / s;\n\talpha *= alpha;\n\tlu = ( -( eta*eta )/( 2.0*s2 ) ) + ln(s2) + ( c2*ln(c2)/s2 );\n\n\t// Temme doesn't specify what value to switch on here, but this seems to work pretty well:\n\tif ( abs(eta) < 0.7 ) {\n\t\t// Small eta use the expansion Temme gives in the second equation of section 5, it's a polynomial in eta:\n\t\tworkspace[ 0 ] = s2;\n\t\tworkspace[ 1 ] = sc;\n\t\tworkspace[ 2 ] = (1.0-(2.0*s2)) / 3.0;\n\t\tworkspace[ 3 ] = polyval12( s2 ) / ( 36.0*sc );\n\t\tworkspace[ 4 ] = polyval13( s2 ) / ( 270.0*sc2 );\n\t\tworkspace[ 5 ] = 0.0;\n\t\tx = evalpoly( workspace, eta );\n\t} else {\n\t\t// If eta is large we need to solve Eq 3.2 more directly, begin by getting an initial approximation for x from the last equation on page 155, this is a polynomial in u:\n\t\tu = exp( lu );\n\t\tworkspace[ 0 ] = u;\n\t\tworkspace[ 1 ] = alpha;\n\t\tworkspace[ 2 ] = 0.0;\n\t\tworkspace[ 3 ] = 3.0 * alpha * ((3.0*alpha)+1.0) / 6.0;\n\t\tworkspace[ 4 ] = 4.0 * alpha * ((4.0*alpha)+1.0) * ((4.0*alpha)+2.0) / 24.0; // eslint-disable-line max-len\n\t\tworkspace[ 5 ] = 5.0 * alpha * ((5.0*alpha)+1.0) * ((5.0*alpha)+2.0) * ((5.0*alpha)+3.0) / 120.0; // eslint-disable-line max-len\n\t\tx = evalpoly( workspace, u );\n\n\t\t// At this point we may or may not have the right answer, Eq-3.2 has two solutions for x for any given eta, however the mapping in 3.2 is 1:1 with the sign of eta and x-sin^2(theta) being the same. So we can check if we have the right root of 3.2, and if not switch x for 1-x. This transformation is motivated by the fact that the distribution is *almost* symmetric so 1-x will be in the right ball park for the solution:\n\t\tif ( (x-s2)*eta < 0.0 ) {\n\t\t\tx = 1.0 - x;\n\t\t}\n\t}\n\t// The final step is a few Newton-Raphson iterations to clean up our approximation for x, this is pretty cheap in general, and very cheap compared to an incomplete beta evaluation. The limits set on x come from the observation that the sign of eta and x-sin^2(theta) are the same.\n\tif ( eta < 0.0 ) {\n\t\tlower = 0.0;\n\t\tupper = s2;\n\t} else {\n\t\tlower = s2;\n\t\tupper = 1.0;\n\t}\n\t// If our initial approximation is out of bounds then bisect:\n\tif ( x < lower || x > upper ) {\n\t\tx = (lower+upper) / 2.0;\n\t}\n\troots = temmeRootFinder( -lu, alpha );\n\n\t// And iterate:\n\tx = newtonRaphsonIterate( roots, x, lower, upper, 32, 100 );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default temme2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport gammainc from './../../../../base/special/gammainc';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport ln from './../../../../base/special/ln';\nimport MAX_FLOAT32 from '@stdlib/constants/float32/max';\n\n\n// VARIABLES //\n\nvar debug = logger( 'gammaincinv:higher_newton' );\n\n\n// MAIN //\n\n/**\n* Implementation of the high order Newton-like method.\n*\n* @private\n* @param {number} x0 - initial value\n* @param {number} a - scale parameter\n* @param {number} m - indicator\n* @param {Probability} p - probability value\n* @param {Probability} q - probability value\n* @param {number} lgama - logarithm of scale parameter\n* @param {number} invfp - one over `fp`\n* @param {boolean} pcase - boolean indicating whether p < 0.5\n* @returns {number} function value of the inverse\n*/\nfunction higherNewton( x0, a, m, p, q, lgama, invfp, pcase ) {\n\tvar dlnr;\n\tvar xini;\n\tvar ck0;\n\tvar ck1;\n\tvar ck2;\n\tvar a2;\n\tvar x2;\n\tvar px;\n\tvar qx;\n\tvar xr;\n\tvar t;\n\tvar n;\n\tvar r;\n\tvar x;\n\n\tx = x0;\n\tt = 1;\n\tn = 1;\n\ta2 = a * a;\n\txini = x0;\n\tdo {\n\t\tx = x0;\n\t\tx2 = x * x;\n\t\tif ( m === 0 ) {\n\t\t\tdlnr = ( ( 1.0-a ) * ln( x ) ) + x + lgama;\n\t\t\tif ( dlnr > ln( MAX_FLOAT32 ) ) {\n\t\t\t\tdebug( 'Warning: overflow problems in one or more steps of the computation. The initial approximation to the root is returned.' );\n\t\t\t\treturn xini;\n\t\t\t}\n\t\t\tr = exp( dlnr );\n\t\t} else {\n\t\t\tr = -invfp * x;\n\t\t}\n\t\tif ( pcase ) {\n\t\t\t// Call: gammainc( x, s[, regularized = true ][, upper = false ] )\n\t\t\tpx = gammainc( x, a, true, false );\n\t\t\tck0 = -r * ( px - p );\n\t\t} else {\n\t\t\t// Call: gammainc( x, s[, regularized = true ][, upper = true ] )\n\t\t\tqx = gammainc( x, a, true, true );\n\t\t\tck0 = r * ( qx - q );\n\t\t}\n\t\tr = ck0;\n\t\tif ( ( p > 1e-120 ) || ( n > 1 ) ) {\n\t\t\tck1 = 0.5 * ( x - a + 1.0 ) / x;\n\t\t\tck2 = ( (2*x2) - (4*x*a) + (4*x) + (2*a2) - (3*a) + 1 ) / x2;\n\t\t\tck2 /= 6.0;\n\t\t\tx0 = x + ( r * ( 1.0 + ( r * ( ck1 + (r*ck2) ) ) ) );\n\t\t} else {\n\t\t\tx0 = x + r;\n\t\t}\n\t\tt = abs( ( x/x0 ) - 1.0 );\n\t\tn += 1;\n\t\tx = x0;\n\t\tif ( x < 0 ) {\n\t\t\tx = xini;\n\t\t\tn = 100;\n\t\t}\n\t} while ( ( ( t > 2e-14 ) && ( n < 35 ) ) );\n\tif ( ( t > 2e-14 ) || ( n > 99 ) ) {\n\t\tdebug( 'Warning: the number of iterations in the Newton method reached the upper limit N=35. The last value obtained for the root is given as output.' );\n\t}\n\txr = x || 0;\n\treturn xr;\n}\n\n\n// EXPORTS //\n\nexport default higherNewton;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport ln from './../../../../base/special/ln';\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport polyvalAK1 from './polyval_ak1.js';\nimport polyvalAK2 from './polyval_ak2.js';\n\n\n// VARIABLES //\n\nvar THRESHOLD = 1.0e-8;\nvar ONEO12 = 0.0833333333333333333333333333333;\nvar ONEO120 = 0.00833333333333333333333333333333;\n\n// Polynomial coefficient workspace:\nvar AK = [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Returns the positive number satisfying \\\\( \\eta^2/2=\\lambda-1-\\ln(\\lambda) \\\\) with \\\\( \\operatorname{sign}(\\lambda-1)=\\operatorname{sign}(\\eta) \\\\).\n*\n* @private\n* @param {number} eta - eta value\n* @returns {number} value satisfying equation\n*/\nfunction lambdaeta( eta ) {\n\tvar L2;\n\tvar L3;\n\tvar L4;\n\tvar L5;\n\tvar la;\n\tvar L;\n\tvar q;\n\tvar r;\n\tvar s;\n\n\ts = eta * eta * 0.5;\n\tif ( eta === 0.0 ) {\n\t\tla = 0.0;\n\t}\n\telse if ( eta < -1.0 ) {\n\t\tr = exp( -1.0 - s );\n\t\tla = polyvalAK1( r );\n\t}\n\telse if ( eta < 1.0 ) {\n\t\tr = eta;\n\t\tla = polyvalAK2( r );\n\t}\n\telse {\n\t\tr = 11.0 + s;\n\t\tL = ln( r );\n\t\tla = r + L;\n\t\tr = 1.0 / r;\n\t\tL2 = L * L;\n\t\tL3 = L2 * L;\n\t\tL4 = L3 * L;\n\t\tL5 = L4 * L;\n\t\tAK[ 1 ] = ( 2.0-L ) * 0.5;\n\t\tAK[ 2 ] = ( ( -9.0*L ) + 6.0 + ( 2.0*L2 ) ) / 6.0;\n\t\tAK[ 3 ] = -( (3*L3)+ (36*L) - (22*L2) - 12 ) * ONEO12;\n\t\tAK[ 4 ] = ( 60.0 + (350.0*L2) - (300.0*L) - (125.0*L3) + (12.0*L4) ) / 60.0; // eslint-disable-line max-len\n\t\tAK[ 5 ] = -(-120 - (274*L4) + (900*L) - (1700*L2) + (1125*L3) + (20*L5)) * ONEO120; // eslint-disable-line max-len\n\t\tla += ( L * r * evalpoly( AK, r ) );\n\t}\n\tr = 1.0;\n\tif (\n\t\t( eta > -3.5 && eta < -0.03 ) ||\n\t\t( eta > 0.03 && eta < 40.0 )\n\t) {\n\t\tr = 1.0;\n\t\tq = la;\n\t\tdo {\n\t\t\tla = q * ( s+ln(q) ) / ( q-1.0 );\n\t\t\tr = abs( ( q/la ) - 1.0 );\n\t\t\tq = la;\n\t\t} while ( r > THRESHOLD );\n\t}\n\treturn la;\n}\n\n\n// EXPORTS //\n\nexport default lambdaeta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\treturn 0.0 + (x * (1.0 + (x * (1.0 + (x * (1.5 + (x * (2.6666666666666665 + (x * (5.208333333333333 + (x * 10.8))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (1.0 + (x * (0.3333333333333333 + (x * (0.027777777777777776 + (x * (-0.003703703703703704 + (x * (0.0002314814814814815 + (x * 0.00005878894767783657))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// Chebyshev polynomial coefficients...\nvar A = [\n\t1.996379051590076518221,\n\t-0.17971032528832887213e-2,\n\t0.131292857963846713e-4,\n\t-0.2340875228178749e-6,\n\t0.72291210671127e-8,\n\t-0.3280997607821e-9,\n\t0.198750709010e-10,\n\t-0.15092141830e-11,\n\t0.1375340084e-12,\n\t-0.145728923e-13,\n\t0.17532367e-14,\n\t-0.2351465e-15,\n\t0.346551e-16,\n\t-0.55471e-17,\n\t0.9548e-18,\n\t-0.1748e-18,\n\t0.332e-19,\n\t-0.58e-20\n];\n\n\n// MAIN //\n\n/**\n* Computes the sum of a Chebyshev polynomial.\n*\n* @private\n* @param {PositiveInteger} n - degree of polynomial\n* @param {number} t - input value\n* @returns {number} Chebyshev sum\n*/\nfunction chepolsum( n, t ) {\n\tvar tt;\n\tvar u0;\n\tvar u1;\n\tvar u2;\n\tvar k;\n\n\tu0 = 0.0;\n\tu1 = 0.0;\n\ttt = t + t;\n\tk = n;\n\tdo {\n\t\tu2 = u1;\n\t\tu1 = u0;\n\t\tu0 = ( tt*u1 ) - u2 + A[ k ];\n\t\tk -= 1;\n\t} while ( k >= 0 );\n\treturn ( u0-u2 ) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default chepolsum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaln from './../../../../base/special/gammaln';\nimport ln from './../../../../base/special/ln';\nimport LN_SQRT_TWO_PI from '@stdlib/constants/float64/ln-sqrt-two-pi';\nimport SMALLEST_FLOAT32 from '@stdlib/constants/float32/smallest-normal';\nimport MAX_FLOAT32 from '@stdlib/constants/float32/max';\nimport chepolsum from './chepolsum.js';\nimport polyvalC from './polyval_c.js';\nimport polyvalD from './polyval_d.js';\n\n\n// VARIABLES //\n\nvar C6 = 0.30865217988013567769;\n\n\n// MAIN //\n\n/**\n* Computes the Stirling series corresponding to asymptotic series for the logarithm of the gamma function.\n*\n* ```tex\n* \\frac{1}{12x}-\\frac{1}{360x^3}\\ldots; x \\ge 3\n* ```\n*\n* @private\n* @param {number} x - input value\n* @returns {number} function value\n*/\nfunction stirling( x ) {\n\tvar z;\n\tif ( x < SMALLEST_FLOAT32 ) {\n\t\treturn MAX_FLOAT32;\n\t}\n\tif ( x < 1.0 ) {\n\t\treturn gammaln( x+1.0 ) - ( (x+0.5) * ln(x) ) + x - LN_SQRT_TWO_PI;\n\t}\n\tif ( x < 2.0 ) {\n\t\treturn gammaln( x ) - ( (x-0.5) * ln(x) ) + x - LN_SQRT_TWO_PI;\n\t}\n\tif ( x < 3.0 ) {\n\t\treturn gammaln( x-1.0 ) - ( (x-0.5) * ln(x) ) + x - LN_SQRT_TWO_PI + ln( x-1.0 ); // eslint-disable-line max-len\n\t}\n\tif ( x < 12.0 ) {\n\t\tz = ( 18.0/( x*x ) ) - 1.0;\n\t\treturn chepolsum( 17, z ) / ( 12.0*x );\n\t}\n\tz = 1.0 / ( x * x );\n\tif ( x < 1000.0 ) {\n\t\treturn polyvalC( z ) / ( C6+z ) / x;\n\t}\n\treturn polyvalD( z ) / x;\n}\n\n\n// EXPORTS //\n\nexport default stirling;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.025721014990011306;\n\t}\n\treturn 0.025721014990011306 + (x * (0.08247596616699963 + (x * (-0.0025328157302663564 + (x * (0.0006099292666946337 + (x * (-0.00033543297638406 + (x * 0.000250505279903))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.08333333333333333;\n\t}\n\treturn 0.08333333333333333 + (x * (-0.002777777777777778 + (x * (0.0007936507936507937 + (x * -0.0005952380952380953))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\nimport gamma from './../../../../base/special/gamma';\nimport ln from './../../../../base/special/ln';\nimport FLOAT32_MAX from '@stdlib/constants/float32/max';\nimport SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\nimport stirling from './stirling.js';\n\n\n// MAIN //\n\n/**\n* Computes the regulated gamma function.\n*\n* @private\n* @param {number} x - input value\n* @returns {number} function value\n*/\nfunction gamstar( x ) {\n\tif ( x >= 3.0 ) {\n\t\treturn exp( stirling(x) );\n\t}\n\tif ( x > 0.0 ) {\n\t\treturn gamma(x) / ( exp( -x + ( ( x-0.5 ) * ln(x) ) ) * SQRT_TWO_PI );\n\t}\n\t// Case: x <= 0.0\n\treturn FLOAT32_MAX;\n}\n\n\n// EXPORTS //\n\nexport default gamstar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-statements */\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport gammaln from './../../../../base/special/gammaln';\nimport erfcinv from './../../../../base/special/erfcinv';\nimport gamma from './../../../../base/special/gamma';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport min from './../../../../base/special/min';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport SQRT_TWO_PI from '@stdlib/constants/float64/sqrt-two-pi';\nimport MAX_FLOAT32 from '@stdlib/constants/float32/max';\nimport TWO_PI from '@stdlib/constants/float64/two-pi';\nimport higherNewton from './higher_newton.js';\nimport lambdaeta from './lambdaeta.js';\nimport gamstar from './gamstar.js';\nimport eps1 from './eps1.js';\nimport eps2 from './eps2.js';\nimport eps3 from './eps3.js';\n\n\n// VARIABLES //\n\nvar debug = logger( 'gammaincinv:compute' );\nvar HALF = 0.5;\nvar ONEO3 = 0.333333333333333333333333333333;\nvar ONEO4 = 0.25;\nvar ONEO5 = 0.2;\nvar ONEO6 = 0.166666666666666666666666666667;\nvar ONEO12 = 0.0833333333333333333333333333333;\nvar ONEO24 = 0.0416666666666666666666666666667;\n\n// Coefficient workspace:\nvar CK = [ 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Computes `x` in the equations `P(a,xr) = p` and `Q(a,xr) = q`, where `a` is a positive parameter and `p` and `q` satisfy `p+q = 1`.\n*\n* ## Notes\n*\n* - The equation is inverted with `min(p,q)`.\n*\n* @private\n* @param {number} a - scale value of incomplete gamma function\n* @param {Probability} p - probability value\n* @param {Probability} q - probability value\n* @returns {number} solution of the equations `P(a,xr) = p` and `Q(a,xr) = q` where `a` is a positive parameter\n*/\nfunction compute( a, p, q ) {\n\tvar ap1inv;\n\tvar invfp;\n\tvar lgama;\n\tvar pcase;\n\tvar porq;\n\tvar ainv;\n\tvar logr;\n\tvar ap22;\n\tvar ap14;\n\tvar ap13;\n\tvar ap12;\n\tvar vgam;\n\tvar vmin;\n\tvar xini;\n\tvar ap1;\n\tvar ap2;\n\tvar ap3;\n\tvar eta;\n\tvar p6;\n\tvar p5;\n\tvar x0;\n\tvar a2;\n\tvar L2;\n\tvar L3;\n\tvar L4;\n\tvar b2;\n\tvar b3;\n\tvar p3;\n\tvar a4;\n\tvar fp;\n\tvar p4;\n\tvar p2;\n\tvar a3;\n\tvar xr;\n\tvar ck;\n\tvar b;\n\tvar L;\n\tvar i;\n\tvar k;\n\tvar m;\n\tvar r;\n\tvar s;\n\tvar t;\n\tvar y;\n\n\tif ( p < HALF ) {\n\t\tpcase = true;\n\t\tporq = p;\n\t\ts = -1.0;\n\t} else {\n\t\tpcase = false;\n\t\tporq = q;\n\t\ts = 1.0;\n\t}\n\tk = 0;\n\tif ( abs( a-1.0 ) < 1.0e-4 ) {\n\t\tm = 0;\n\t\tif ( pcase ) {\n\t\t\tif ( p < 1.0e-3 ) {\n\t\t\t\tp2 = p * p;\n\t\t\t\tp3 = p2 * p;\n\t\t\t\tp4 = p3 * p;\n\t\t\t\tp5 = p4 * p;\n\t\t\t\tp6 = p5 * p;\n\t\t\t\tx0 = p + ( p2*HALF ) + ( p3*(ONEO3) ) + ( p4*ONEO4 ) + ( p5*ONEO5 ) + ( p6*(ONEO6) ); // eslint-disable-line max-len\n\t\t\t} else {\n\t\t\t\tx0 = -ln( 1.0-p );\n\t\t\t}\n\t\t} else {\n\t\t\tx0 = -ln( q );\n\t\t}\n\t\tif ( a === 1.0 ) {\n\t\t\tk = 2;\n\t\t\txr = x0;\n\t\t} else {\n\t\t\tlgama = gammaln( a );\n\t\t\tk = 1;\n\t\t}\n\t}\n\tif ( q < 1.0e-30 && a < HALF ) {\n\t\tm = 0;\n\t\tx0 = -ln( q*gamma(a) ) + ( ( a-1.0 ) * ln( -ln( q*gamma(a) ) ) );\n\t\tk = 1;\n\t\tlgama = gammaln( a );\n\t}\n\tif ( a > 1.0 && a < 500.0 && p < 1.0e-80 ) {\n\t\tm = 0;\n\t\tainv = 1.0 / a;\n\t\tap1inv = 1.0 / ( a+1.0 );\n\t\tx0 = ( gammaln( a+1.0 ) + ln( p ) ) * ainv;\n\t\tx0 = exp( x0 );\n\t\txini = x0;\n\t\tfor ( i = 0; i < 10; i++ ) {\n\t\t\tx0 = xini * exp( x0*ainv ) * pow( 1.0-( x0*ap1inv ), ainv );\n\t\t}\n\t\tk = 1;\n\t\tlgama = gammaln( a );\n\t}\n\n\tlogr = (1.0/a) * ( ln(p) + gammaln( a+1.0 ) );\n\tif ( ( logr < ln( ONEO5 * ( 1.0+a ) ) ) && ( k === 0 ) ) {\n\t\tr = exp( logr );\n\t\tm = 0;\n\t\ta2 = a * a;\n\t\ta3 = a2 * a;\n\t\ta4 = a3 * a;\n\t\tap1 = a + 1.0;\n\t\tap12 = ap1 * ap1;\n\t\tap13 = ap1 * ap12;\n\t\tap14 = ap12 * ap12;\n\t\tap2 = a + 2.0;\n\t\tap22 = ap2 * ap2;\n\t\tap3 = a + 3.0;\n\t\tCK[ 0 ] = 1.0;\n\t\tCK[ 1 ] = 1.0 / ap1;\n\t\tCK[ 2 ] = HALF * ( ( 3.0*a ) + 5.0 ) / ( ap12*ap2 );\n\t\tCK[ 3 ] = ONEO3 * ( 31.0 + (8.0*a2) + (33.0*a) ) / ( ap13*ap2*ap3 );\n\t\tCK[ 4 ] = ONEO24 * ( 2888.0 + (1179.0*a3) + (125.0*a4) + (3971.0*a2) + (5661.0*a) ) / ( ap14*ap22*ap3*( a+4.0 ) ); // eslint-disable-line max-len\n\t\tx0 = r * evalpoly( CK, r );\n\t\tlgama = gammaln( a );\n\t\tk = 1;\n\t}\n\tif ( ( a < 10.0 ) && ( k === 0 ) ) {\n\t\tvgam = sqrt( a ) / ( gamstar(a)*SQRT_TWO_PI );\n\t\tvmin = min( 0.02, vgam );\n\t\tif ( q < vmin ) {\n\t\t\tm = 0;\n\t\t\tb = 1.0 - a;\n\t\t\tb2 = b * b;\n\t\t\tb3 = b2 * b;\n\t\t\teta = sqrt( -2.0/a * ln( q/vgam ) );\n\t\t\tx0 = a * lambdaeta( eta );\n\t\t\tL = ln( x0 );\n\t\t\tif ( x0 > 5.0 ) {\n\t\t\t\tL2 = L * L;\n\t\t\t\tL3 = L2 * L;\n\t\t\t\tL4 = L3 * L;\n\t\t\t\tr = 1.0 / x0;\n\t\t\t\tCK[ 0 ] = L - 1.0;\n\t\t\t\tCK[ 1 ] = ( (3.0*b) - (2.0*b*L) + L2 - ( 2.0*L ) + 2.0 ) * HALF;\n\t\t\t\tCK[ 2 ] =( (24.0*b*L) - (11.0*b2) - (24.0*b) - (6.0*L2) + (12.0*L) - 12.0 - (9.0*b*L2) + (6.0*b2*L) + (2.0*L3) ) * ONEO6; // eslint-disable-line max-len\n\t\t\t\tCK[ 3 ] = ( (-12.0*b3*L) + (8.04*b*L2) - (114.0*b2*L) + (72.0+(36.0*L2)) + (((3.0*L4)-(72.0*L)+162.0) * (b-(168.0*b*L))) - ((12.0*L3)+(25.0*b3)) - ( (22.0*b*L3)+(36.0*b2*L2)+(120.0*b2) ) ) * ONEO12; // eslint-disable-line max-len\n\t\t\t\tCK[ 4 ] = 0.0;\n\t\t\t\tx0 = x0 - L + ( b*r*evalpoly( CK, r ) );\n\t\t\t} else {\n\t\t\t\tr = 1.0 / x0;\n\t\t\t\tL2 = L * L;\n\t\t\t\tck = L - 1.0;\n\t\t\t\tt = L - (b*r*ck);\n\t\t\t\tif ( t < x0 ) {\n\t\t\t\t\tx0 -= t;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlgama = gammaln( a );\n\t\t\tk = 1;\n\t\t}\n\t}\n\tif ( ( abs( porq-HALF ) < 1.0e-5 ) && ( k === 0 ) ) {\n\t\tm = 0;\n\t\tainv = 1.0 / a;\n\t\tx0 = a - ONEO3 + ( ( 0.0197530864197530864197530864198 +\n\t\t\t( 0.00721144424848128551832255535959*ainv ) ) * ainv );\n\t\tlgama = gammaln( a );\n\t\tk = 1;\n\t}\n\tif ( ( a < 1.0 ) && ( k === 0 ) ) {\n\t\tm = 0;\n\t\tif (pcase) {\n\t\t\tx0 = exp( (1.0/a) * ( ln(porq) + gammaln(a+1.0) ) );\n\t\t} else {\n\t\t\tx0 = exp( (1.0/a) * ( ln(1.0-porq) + gammaln(a+1.0) ) );\n\t\t}\n\t\tlgama = gammaln( a );\n\t\tk = 1;\n\t}\n\tif ( k === 0 ) {\n\t\tm = 1;\n\t\tainv = 1.0 / a;\n\t\tr = erfcinv( 2.0 * porq );\n\t\teta = s * r / sqrt( a*HALF );\n\t\tif ( r < MAX_FLOAT32 ) {\n\t\t\teta += ( eps1(eta) + ( (eps2(eta)+(eps3(eta)*ainv))*ainv ) ) * ainv;\n\t\t\tx0 = a * lambdaeta(eta);\n\t\t\ty = eta;\n\t\t\tfp = -sqrt( a/TWO_PI ) * exp( -HALF*a*y*y ) / ( gamstar(a) );\n\t\t\tinvfp = 1.0 / fp;\n\t\t} else {\n\t\t\tdebug( 'Warning: Overflow problems in one or more steps of the computation.' );\n\t\t\treturn NaN;\n\t\t}\n\t}\n\tif ( k < 2 ) {\n\t\txr = higherNewton( x0, a, m, p, q, lgama, invfp, pcase );\n\t}\n\treturn xr;\n}\n\n\n// EXPORTS //\n\nexport default compute;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport ln from './../../../../base/special/ln';\nimport lambdaeta from './lambdaeta.js';\nimport rateval from './rational_ak0bk0.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the `eps1` function.\n*\n* @private\n* @param {number} eta - eta value\n* @returns {number} function value\n*/\nfunction eps1( eta ) {\n\tvar la;\n\tif ( abs( eta ) < 1.0 ) {\n\t\treturn rateval( eta );\n\t}\n\tla = lambdaeta( eta );\n\treturn ln( eta / ( la - 1.0 ) ) / eta;\n}\n\n\n// EXPORTS //\n\nexport default eps1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.3333333333438;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.3333333333438 + (x * (-0.2070740359969 + (x * (-0.05041806657154 + (x * (-0.004923635739372 + (x * -0.00004293658292782))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.7045554412463 + (x * (0.2118190062224 + (x * (0.03048648397436 + (x * 0.001605037988091))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.00004293658292782 + (x * (-0.004923635739372 + (x * (-0.05041806657154 + (x * (-0.2070740359969 + (x * -0.3333333333438))))))); // eslint-disable-line max-len\n\t\ts2 = 0.001605037988091 + (x * (0.03048648397436 + (x * (0.2118190062224 + (x * (0.7045554412463 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport rateval1 from './rational_ak1bk1.js';\nimport rateval2 from './rational_ak2bk2.js';\nimport rateval3 from './rational_ak3bk3.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the `eps2` function.\n*\n* @private\n* @param {number} eta - eta value\n* @returns {number} function value\n*/\nfunction eps2( eta ) {\n\tvar lnmeta;\n\tvar x;\n\tif ( eta < -5.0 ) {\n\t\tx = eta * eta;\n\t\tlnmeta = ln( -eta );\n\t\treturn ( 12.0 - x - ( 6.0*( lnmeta*lnmeta ) ) ) / ( 12.0*x*eta );\n\t}\n\tif ( eta < -2.0 ) {\n\t\treturn rateval1( eta );\n\t}\n\tif ( eta < 2.0 ) {\n\t\treturn rateval2( eta );\n\t}\n\tif ( eta < 1000.0 ) {\n\t\tx = 1.0 / eta;\n\t\treturn rateval3( eta ) / ( -12.0*eta );\n\t}\n\treturn -1.0 / ( 12.0 * eta );\n}\n\n\n// EXPORTS //\n\nexport default eps2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0172847633523;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0172847633523 + (x * (-0.0159372646475 + (x * (-0.00464910887221 + (x * (-0.00060683488776 + (x * -0.00000614830384279))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.764050615669 + (x * (0.297143406325 + (x * (0.0579490176079 + (x * 0.00574558524851))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.00000614830384279 + (x * (-0.00060683488776 + (x * (-0.00464910887221 + (x * (-0.0159372646475 + (x * -0.0172847633523))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00574558524851 + (x * (0.0579490176079 + (x * (0.297143406325 + (x * (0.764050615669 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0172839517431;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0172839517431 + (x * (-0.0146362417966 + (x * (-0.00357406772616 + (x * (-0.000391032032692 + (x * 0.00000249634036069))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.690560400696 + (x * (0.249962384741 + (x * (0.0443843438769 + (x * 0.00424073217211))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.00000249634036069 + (x * (-0.000391032032692 + (x * (-0.00357406772616 + (x * (-0.0146362417966 + (x * -0.0172839517431))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00424073217211 + (x * (0.0443843438769 + (x * (0.249962384741 + (x * (0.690560400696 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.99994466948;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.99994466948 + (x * (104.649839762 + (x * (857.204033806 + (x * (731.901559577 + (x * 45.5174411671))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (104.526456943 + (x * (823.313447808 + (x * (3119.93802124 + (x * 3970.03311219))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 45.5174411671 + (x * (731.901559577 + (x * (857.204033806 + (x * (104.649839762 + (x * 0.99994466948))))))); // eslint-disable-line max-len\n\t\ts2 = 3970.03311219 + (x * (3119.93802124 + (x * (823.313447808 + (x * (104.526456943 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport rational1 from './rational_ak4bk4.js';\nimport rational2 from './rational_ak5bk5.js';\nimport rational3 from './rational_ak6bk6.js';\nimport rational4 from './rational_ak7bk7.js';\nimport rational5 from './rational_ak8bk8.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the `eps3` function.\n*\n* @private\n* @param {number} eta - eta value\n* @returns {number} function value\n*/\nfunction eps3( eta ) {\n\tvar x;\n\tvar y;\n\n\tif ( eta < -8.0 ) {\n\t\tx = eta * eta;\n\t\ty = ln( -eta ) / eta;\n\t\treturn ( -30.0 + ( eta*y*( (6.0*x*y*y)-12.0+x ) ) ) / ( 12.0*eta*x*x );\n\t}\n\tif ( eta < -4.0 ) {\n\t\treturn rational1( eta ) / ( eta*eta );\n\t}\n\tif ( eta < -2.0 ) {\n\t\treturn rational2( eta );\n\t}\n\tif ( eta < 2.0 ) {\n\t\treturn rational3( eta );\n\t}\n\tif ( eta < 10.0 ) {\n\t\tx = 1.0 / eta;\n\t\treturn rational4( x ) / ( eta*eta );\n\t}\n\tif ( eta < 100.0 ) {\n\t\tx = 1.0 / eta;\n\t\treturn rational5( x ) / ( eta*eta );\n\t}\n\treturn -ln( eta ) / ( 12.0*eta*eta*eta );\n}\n\n\n// EXPORTS //\n\nexport default eps3;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.0495346498136;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.0495346498136 + (x * (0.0299521337141 + (x * (0.00688296911516 + (x * (0.000512634846317 + (x * -0.0000201411722031))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.759803615283 + (x * (0.261547111595 + (x * (0.0464854522477 + (x * 0.00403751193496))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.0000201411722031 + (x * (0.000512634846317 + (x * (0.00688296911516 + (x * (0.0299521337141 + (x * 0.0495346498136))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00403751193496 + (x * (0.0464854522477 + (x * (0.261547111595 + (x * (0.759803615283 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.00452313583942;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.00452313583942 + (x * (0.00120744920113 + (x * (-0.0000789724156582 + (x * (-0.0000504476066942 + (x * -0.00000535770949796))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.912203410349 + (x * (0.405368773071 + (x * (0.0901638932349 + (x * 0.00948935714996))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.00000535770949796 + (x * (-0.0000504476066942 + (x * (-0.0000789724156582 + (x * (0.00120744920113 + (x * 0.00452313583942))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00948935714996 + (x * (0.0901638932349 + (x * (0.405368773071 + (x * (0.912203410349 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.00439937562904;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.00439937562904 + (x * (0.000487225670639 + (x * (-0.000128470657374 + (x * (0.00000529110969589 + (x * 1.5716677175e-7))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.794435257415 + (x * (0.333094721709 + (x * (0.0703527806143 + (x * 0.00806110846078))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 1.5716677175e-7 + (x * (0.00000529110969589 + (x * (-0.000128470657374 + (x * (0.000487225670639 + (x * 0.00439937562904))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00806110846078 + (x * (0.0703527806143 + (x * (0.333094721709 + (x * (0.794435257415 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0011481191232;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0011481191232 + (x * (-0.112850923276 + (x * (1.51623048511 + (x * (-0.218472031183 + (x * 0.0730002451555))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (14.2482206905 + (x * (69.7360396285 + (x * (218.938950816 + (x * 277.067027185))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0730002451555 + (x * (-0.218472031183 + (x * (1.51623048511 + (x * (-0.112850923276 + (x * -0.0011481191232))))))); // eslint-disable-line max-len\n\t\ts2 = 277.067027185 + (x * (218.938950816 + (x * (69.7360396285 + (x * (14.2482206905 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.000145727889667;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.000145727889667 + (x * (-0.290806748131 + (x * (-13.308504545 + (x * (199.722374056 + (x * -11.4311378756))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (139.612587808 + (x * (2189.01116348 + (x * (7115.24019009 + (x * 45574.6081453))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -11.4311378756 + (x * (199.722374056 + (x * (-13.308504545 + (x * (-0.290806748131 + (x * -0.000145727889667))))))); // eslint-disable-line max-len\n\t\ts2 = 45574.6081453 + (x * (7115.24019009 + (x * (2189.01116348 + (x * (139.612587808 + (x * 1.0))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* Translated from the Fortran module by\n* ----------------------------------------------------------------------\n* Authors:\n* Amparo Gil (U. Cantabria, Santander, Spain)\n* e-mail: amparo.gil@unican.es\n* Javier Segura (U. Cantabria, Santander, Spain)\n* e-mail: javier.segura@unican.es\n* Nico M. Temme (CWI, Amsterdam, The Netherlands)\n* e-mail: nico.temme@cwi.nl\n* ---------------------------------------------------------------------\n*/\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport FLOAT32_SMALLEST from '@stdlib/constants/float32/smallest-normal';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport compute from './compute.js';\n\n\n// MAIN //\n\n/**\n* Inverts the lower gamma function; i.e., computes `xr` such that `P(a,xr) = p`.\n*\n* ## Method\n*\n* The present code uses different methods of computation depending on the values of the input values: Taylor, asymptotic expansions and high-order Newton methods.\n*\n* ## Notes\n*\n* - The claimed accuracy obtained using this inversion routine is near `1e-12`.\n*\n* ## References\n*\n* - A. Gil, J. Segura and N.M. Temme, GammaCHI: a package for the inversion and computation of the gamma and chi-square distribution functions (central and noncentral). Computer Physics Commun\n* - A. Gil, J. Segura and N.M. Temme. Efficient and accurate algorithms for the computation and inversion of the incomplete gamma function ratios. SIAM J Sci Comput. (2012) 34(6), A2965-A2981\n*\n* @param {Probability} p - probability value\n* @param {number} a - scale parameter\n* @param {boolean} [upper=false] - boolean indicating if the function should invert the upper tail of the incomplete gamma function instead; i.e., compute `xr` such that `Q(a,xr) = p`.\n* @returns {number} function value of the inverse\n*/\nfunction gammaincinv( p, a, upper ) {\n\tif ( isnan( p ) || isnan( a ) ) {\n\t\treturn NaN;\n\t}\n\tif ( a < FLOAT32_SMALLEST ) {\n\t\treturn NaN;\n\t}\n\tif ( p > 1.0 || p < 0.0 ) {\n\t\treturn NaN;\n\t}\n\t// Case: invert upper gamma function\n\tif ( upper === true ) {\n\t\tif ( p === 0.0 ) {\n\t\t\treturn PINF;\n\t\t}\n\t\tif ( p === 1.0 ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\treturn compute( a, 1.0-p, p );\n\t}\n\t// Default: invert lower gamma function\n\tif ( p === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( p === 1.0 ) {\n\t\treturn PINF;\n\t}\n\treturn compute( a, p, 1.0-p );\n}\n\n\n// EXPORTS //\n\nexport default gammaincinv;\n","/* eslint-disable max-statements, max-lines */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport betainc from './../../../../base/special/betainc';\nimport expm1 from './../../../../base/special/expm1';\nimport log1p from './../../../../base/special/log1p';\nimport asin from './../../../../base/special/asin';\nimport beta from './../../../../base/special/beta';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport sin from './../../../../base/special/sin';\nimport max from './../../../../base/special/max';\nimport min from './../../../../base/special/min';\nimport ln from './../../../../base/special/ln';\nimport FLOAT64_MIN_NORM from '@stdlib/constants/float64/smallest-normal';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport EPSILON from '@stdlib/constants/float64/eps';\nimport findIBetaInvFromTDist from './find_ibeta_inv_from_t_dist.js';\nimport temme1 from './temme1.js';\nimport temme2 from './temme2.js';\nimport temme3 from './temme3.js';\nimport halleyIterate from './halley_iterate.js';\nimport ibetaRoots from './ibeta_roots.js';\n\n\n// VARIABLES //\n\nvar DIGITS = 32;\nvar MAX_ITERATIONS = 1000;\n\n// Workspace for the polynomial coefficients:\nvar terms = [ 0.0, 0.0, 0.0, 0.0, 0.0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Calculates the inverse of the incomplete beta function.\n*\n* @private\n* @param {PositiveNumber} a - function parameter\n* @param {PositiveNumber} b - function parameter\n* @param {Probability} p - function parameter\n* @param {Probability} q - probability equal to `1 - p`\n* @returns {Array} two-element array holding function value `y` and `1-y`\n*/\nfunction ibetaInvImp( a, b, p, q ) {\n\tvar digits;\n\tvar invert;\n\tvar lambda;\n\tvar lower;\n\tvar theta;\n\tvar upper;\n\tvar roots;\n\tvar maxv;\n\tvar minv;\n\tvar bet;\n\tvar ppa;\n\tvar tmp;\n\tvar xs2;\n\tvar ap1;\n\tvar bm1;\n\tvar fs;\n\tvar lx;\n\tvar ps;\n\tvar xg;\n\tvar xs;\n\tvar yp;\n\tvar a2;\n\tvar a3;\n\tvar b2;\n\tvar r;\n\tvar l;\n\tvar u;\n\tvar x;\n\tvar y;\n\n\t// The flag invert is set to true if we swap a for b and p for q, in which case the result has to be subtracted from 1:\n\tinvert = false;\n\n\t// Handle trivial cases first...\n\tif ( q === 0.0 ) {\n\t\treturn [ 1.0, 0.0 ];\n\t}\n\tif ( p === 0.0 ) {\n\t\treturn [ 0.0, 1.0 ];\n\t}\n\tif ( a === 1.0 ) {\n\t\tif ( b === 1.0 ) {\n\t\t\treturn [ p, 1.0-p ];\n\t\t}\n\t\t// Change things around so we can handle as b == 1 special case below:\n\t\ttmp = b;\n\t\tb = a;\n\t\ta = tmp;\n\n\t\ttmp = q;\n\t\tq = p;\n\t\tp = tmp;\n\n\t\tinvert = true;\n\t}\n\t// Depending upon which approximation method we use, we may end up calculating either x or y initially (where y = 1-x):\n\tx = 0.0; // Set to a safe zero to avoid a\n\n\t// For some of the methods we can put tighter bounds on the result than simply [0,1]:\n\tlower = 0.0;\n\tupper = 1.0;\n\n\t// Student's T with b = 0.5 gets handled as a special case, swap around if the arguments are in the \"wrong\" order:\n\tif ( a === 0.5 ) {\n\t\tif ( b === 0.5 ) {\n\t\t\tx = sin( p*HALF_PI );\n\t\t\tx *= x;\n\t\t\ty = sin( q*HALF_PI );\n\t\t\ty *= y;\n\t\t\treturn [ x, y ];\n\t\t}\n\t\tif ( b > 0.5 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = q;\n\t\t\tq = p;\n\t\t\tp = tmp;\n\n\t\t\tinvert = !invert;\n\t\t}\n\t}\n\t// Select calculation method for the initial estimate:\n\tif ( b === 0.5 && a >= 0.5 && p !== 1.0 ) {\n\t\t// We have a Student's T distribution:\n\t\typ = {};\n\t\tx = findIBetaInvFromTDist( a, p, yp );\n\t\ty = yp.value;\n\t}\n\telse if ( b === 1.0 ) {\n\t\tif ( p < q ) {\n\t\t\tif ( a > 1.0 ) {\n\t\t\t\tx = pow( p, 1.0/a );\n\t\t\t\ty = -expm1( ln(p) / a );\n\t\t\t} else {\n\t\t\t\tx = pow( p, 1.0/a );\n\t\t\t\ty = 1.0 - x;\n\t\t\t}\n\t\t} else {\n\t\t\tx = exp( log1p(-q) / a );\n\t\t\ty = -expm1( log1p(-q) / a );\n\t\t}\n\t\tif ( invert ) {\n\t\t\ttmp = y;\n\t\t\ty = x;\n\t\t\tx = tmp;\n\t\t}\n\t\treturn [ x, y ];\n\t}\n\telse if ( a+b > 5.0 ) {\n\t\t// When a+b is large then we can use one of Prof Temme's asymptotic expansions, begin by swapping things around so that p < 0.5, we do this to avoid cancellations errors when p is large.\n\t\tif ( p > 0.5 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = q;\n\t\t\tq = p;\n\t\t\tp = tmp;\n\n\t\t\tinvert = !invert;\n\t\t}\n\t\tminv = min( a, b );\n\t\tmaxv = max( a, b );\n\t\tif ( ( sqrt(minv) > (maxv-minv) ) && minv > 5.0 ) {\n\t\t\t// When a and b differ by a small amount the curve is quite symmetrical and we can use an error function to approximate the inverse. This is the cheapest of the three Temme expansions, and the calculated value for x will never be much larger than p, so we don't have to worry about cancellation as long as p is small.\n\t\t\tx = temme1( a, b, p );\n\t\t\ty = 1.0 - x;\n\t\t} else {\n\t\t\tr = a + b;\n\t\t\ttheta = asin( sqrt( a/r ) );\n\t\t\tlambda = minv / r;\n\t\t\tif (\n\t\t\t\tlambda >= 0.2 &&\n\t\t\t\tlambda <= 0.8 &&\n\t\t\t\tr >= 10\n\t\t\t) {\n\t\t\t\t// The second error function case is the next cheapest to use, it breaks down when the result is likely to be very small, if `a+b` is also small, but we can use a cheaper expansion there in any case. As before `x` won't be much larger than `p`, so as long as `p` is small we should be free of cancellation error.\n\t\t\t\tppa = pow( p, 1.0/a );\n\t\t\t\tif ( ppa < 0.0025 && ( a+b ) < 200.0 ) {\n\t\t\t\t\tx = ppa * pow( a*beta( a, b ), 1.0/a );\n\t\t\t\t} else {\n\t\t\t\t\tx = temme2( p, r, theta );\n\t\t\t\t}\n\t\t\t\ty = 1.0 - x;\n\t\t\t} else {\n\t\t\t\t// If we get here then a and b are very different in magnitude and we need to use the third of Temme's methods which involves inverting the incomplete gamma. This is much more expensive than the other methods. We also can only use this method when a > b, which can lead to cancellation errors if we really want y (as we will when x is close to 1), so a different expansion is used in that case.\n\t\t\t\tif ( a < b ) {\n\t\t\t\t\ttmp = b;\n\t\t\t\t\tb = a;\n\t\t\t\t\ta = tmp;\n\n\t\t\t\t\ttmp = q;\n\t\t\t\t\tq = p;\n\t\t\t\t\tp = tmp;\n\t\t\t\t\tinvert = !invert;\n\t\t\t\t}\n\t\t\t\t// Try and compute the easy way first:\n\t\t\t\tbet = 0.0;\n\t\t\t\tif ( b < 2.0 ) {\n\t\t\t\t\tbet = beta( a, b );\n\t\t\t\t}\n\t\t\t\tif ( bet === 0.0 ) {\n\t\t\t\t\ty = 1.0;\n\t\t\t\t} else {\n\t\t\t\t\ty = pow( b*q*bet, 1.0/b );\n\t\t\t\t\tx = 1.0 - y;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( y > 1.0e-5 ) {\n\t\t\t\tx = temme3( a, b, p, q );\n\t\t\t\ty = 1.0 - x;\n\t\t\t}\n\t\t}\n\t}\n\telse if ( a < 1.0 && b < 1.0 ) {\n\t\t// Both a and b less than 1, there is a point of inflection at xs:\n\t\txs = ( 1.0-a ) / ( 2.0-a-b );\n\n\t\t// Now we need to ensure that we start our iteration from the right side of the inflection point:\n\t\tfs = betainc( xs, a, b ) - p;\n\t\tif ( abs(fs)/p < EPSILON*3.0 ) {\n\t\t\t// The result is at the point of inflection, best just return it:\n\t\t\tif ( invert ) {\n\t\t\t\treturn [ 1.0-xs, xs ];\n\t\t\t}\n\t\t\treturn [ xs, 1.0-xs ];\n\t\t}\n\t\tif ( fs < 0.0 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = q;\n\t\t\tq = p;\n\t\t\tp = tmp;\n\n\t\t\tinvert = !invert;\n\t\t\txs = 1.0 - xs;\n\t\t}\n\t\txg = pow( a*p*beta( a, b ), 1.0/a );\n\t\tx = xg / ( 1.0+xg );\n\t\ty = 1.0 / ( 1.0+xg );\n\n\t\t// And finally we know that our result is below the inflection point, so set an upper limit on our search:\n\t\tif ( x > xs ) {\n\t\t\tx = xs;\n\t\t}\n\t\tupper = xs;\n\t}\n\telse if ( a > 1.0 && b > 1.0 ) {\n\t\t// Small a and b, both greater than 1, there is a point of inflection at xs, and it's complement is xs2, we must always start our iteration from the right side of the point of inflection.\n\t\txs = ( a-1.0 ) / ( a+b-2.0 );\n\t\txs2 = ( b-1.0 ) / ( a+b-2.0 );\n\t\tps = betainc( xs, a, b ) - p;\n\n\t\tif ( ps < 0.0 ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = q;\n\t\t\tq = p;\n\t\t\tp = tmp;\n\n\t\t\ttmp = xs2;\n\t\t\txs2 = xs;\n\t\t\txs = tmp;\n\n\t\t\tinvert = !invert;\n\t\t}\n\t\t// Estimate x and y, using expm1 to get a good estimate for y when it's very small:\n\t\tlx = ln( p*a*beta( a, b ) ) / a;\n\t\tx = exp( lx );\n\t\ty = ( x < 0.9 ) ? 1.0-x : -expm1(lx);\n\n\t\tif ( b < a && x < 0.2 ) {\n\t\t\t// Under a limited range of circumstances we can improve our estimate for x...\n\t\t\tap1 = a - 1.0;\n\t\t\tbm1 = b - 1.0;\n\t\t\ta2 = a * a;\n\t\t\ta3 = a * a2;\n\t\t\tb2 = b * b;\n\t\t\tterms[ 0 ] = 0.0;\n\t\t\tterms[ 1 ] = 1.0;\n\t\t\tterms[ 2 ] = bm1 / ap1;\n\t\t\tap1 *= ap1;\n\t\t\tterms[ 3 ] = bm1 * (3.0*a*b + 5.0*b + a2 - a - 4.0) / (2.0 * (a+2.0) * ap1); // eslint-disable-line max-len, no-mixed-operators\n\t\t\tap1 *= (a + 1.0);\n\t\t\tterms[ 4 ] = bm1 * (33.0*a*b2 + 31.0*b2 + 8.0*a2*b2 - 30.0*a*b - 47.0*b + 11.0*a2*b + 6.0*a3*b + 18.0 + 4.0*a - a3 + a2*a2 - 10.0*a2); // eslint-disable-line max-len, no-mixed-operators\n\t\t\tterms[ 4 ] /= (3.0 * (a+3.0) * (a+2.0) * ap1);\n\t\t\tx = evalpoly( terms, x );\n\t\t}\n\t\t// Know that result is below the inflection point, so set an upper limit on search...\n\t\tif ( x > xs ) {\n\t\t\tx = xs;\n\t\t}\n\t\tupper = xs;\n\t} else {\n\t\t// Case: ( a <= 1 ) != ( b <= 1 ). If all else fails we get here, only one of a and b is above 1, and a+b is small. Start by swapping things around so that we have a concave curve with b > a and no points of inflection in [0,1]. As long as we expect x to be small then we can use the simple (and cheap) power term to estimate x, but when we expect x to be large then this greatly underestimates x and leaves us trying to iterate \"round the corner\" which may take almost forever. We could use Temme's inverse gamma function case in that case, this works really rather well (albeit expensively) even though strictly speaking we're outside it's defined range. However it's expensive to compute, and an alternative approach which models the curve as a distorted quarter circle is much cheaper to compute, and still keeps the number of iterations required down to a reasonable level. With thanks to Prof. Temme for this suggestion.\n\t\tif ( b < a ) {\n\t\t\ttmp = b;\n\t\t\tb = a;\n\t\t\ta = tmp;\n\n\t\t\ttmp = q;\n\t\t\tq = p;\n\t\t\tp = tmp;\n\t\t\tinvert = !invert;\n\t\t}\n\t\tif ( pow( p, 1.0/a ) < 0.5 ) {\n\t\t\tx = pow( p*a*beta( a, b ), 1.0/a );\n\t\t\tif ( x === 0.0 ) {\n\t\t\t\tx = FLOAT64_MIN_NORM;\n\t\t\t}\n\t\t\ty = 1.0 - x;\n\t\t}\n\t\t// Case: pow(q, 1/b) < 0.1\n\t\telse {\n\t\t\t// Model a distorted quarter circle:\n\t\t\ty = pow( 1.0-pow( p, b*beta( a, b ) ), 1.0/b );\n\t\t\tif ( y === 0 ) {\n\t\t\t\ty = FLOAT64_MIN_NORM;\n\t\t\t}\n\t\t\tx = 1.0 - y;\n\t\t}\n\t}\n\t// Now we have a guess for x (and for y) we can set things up for iteration. If x > 0.5 it pays to swap things round:\n\tif ( x > 0.5 ) {\n\t\ttmp = b;\n\t\tb = a;\n\t\ta = tmp;\n\n\t\ttmp = q;\n\t\tq = p;\n\t\tp = tmp;\n\n\t\ttmp = y;\n\t\ty = x;\n\t\tx = tmp;\n\n\t\tinvert = !invert;\n\t\tl = 1.0 - upper;\n\t\tu = 1.0 - lower;\n\t\tlower = l;\n\t\tupper = u;\n\t}\n\t// Lower bound for our search: We're not interested in denormalized answers as these tend to take up lots of iterations, given that we can't get accurate derivatives in this area (they tend to be infinite).\n\tif ( lower === 0 ) {\n\t\tif ( invert ) {\n\t\t\t// We're not interested in answers smaller than machine epsilon:\n\t\t\tlower = EPSILON;\n\t\t\tif ( x < lower ) {\n\t\t\t\tx = lower;\n\t\t\t}\n\t\t} else {\n\t\t\tlower = FLOAT64_MIN_NORM;\n\t\t}\n\t\tif ( x < lower ) {\n\t\t\tx = lower;\n\t\t}\n\t}\n\t// Figure out how many digits to iterate towards:\n\tdigits = DIGITS;\n\tif ( x < 1.0e-50 && ( a < 1.0 || b < 1.0 ) ) {\n\t\t// If we're in a region where the first derivative is very large, then we have to take care that the root-finder doesn't terminate prematurely. We'll bump the precision up to avoid this, but we have to take care not to set the precision too high or the last few iterations will just thrash around and convergence may be slow in this case. Try 3/4 of machine epsilon:\n\t\tdigits *= 3;\n\t\tdigits /= 2;\n\t}\n\t// Now iterate, we can use either p or q as the target here depending on which is smaller:\n\troots = ibetaRoots( a, b, ( (p < q) ? p : q ), p >= q );\n\tx = halleyIterate( roots, x, lower, upper, digits, MAX_ITERATIONS );\n\n\t// Tidy up, if we \"lower\" was too high then zero is the best answer we have:\n\tif ( x === lower ) {\n\t\tx = 0.0;\n\t}\n\tif ( invert ) {\n\t\treturn [ 1.0-x, x ];\n\t}\n\treturn [ x, 1.0-x ];\n}\n\n\n// EXPORTS //\n\nexport default ibetaInvImp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -1.0;\n\t}\n\treturn -1.0 + (x * (-5.0 + (x * 5.0)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (21.0 + (x * (-69.0 + (x * 46.0)))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 7.0;\n\t}\n\treturn 7.0 + (x * (-2.0 + (x * (33.0 + (x * (-62.0 + (x * 31.0)))))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 25.0;\n\t}\n\treturn 25.0 + (x * (-52.0 + (x * (-17.0 + (x * (88.0 + (x * (-115.0 + (x * 46.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 7.0;\n\t}\n\treturn 7.0 + (x * (12.0 + (x * (-78.0 + (x * 52.0)))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -7.0;\n\t}\n\treturn -7.0 + (x * (2.0 + (x * (183.0 + (x * (-370.0 + (x * 185.0)))))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -533.0;\n\t}\n\treturn -533.0 + (x * (776.0 + (x * (-1835.0 + (x * (10240.0 + (x * (-13525.0 + (x * 5410.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -1579.0;\n\t}\n\treturn -1579.0 + (x * (3747.0 + (x * (-3372.0 + (x * (-15821.0 + (x * (45588.0 + (x * (-45213.0 + (x * 15071.0))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 449.0;\n\t}\n\treturn 449.0 + (x * (-1259.0 + (x * (-769.0 + (x * (6686.0 + (x * (-9260.0 + (x * 3704.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 63149.0;\n\t}\n\treturn 63149.0 + (x * (-151557.0 + (x * (140052.0 + (x * (-727469.0 + (x * (2239932.0 + (x * (-2251437.0 + (x * 750479.0))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 29233.0;\n\t}\n\treturn 29233.0 + (x * (-78755.0 + (x * (105222.0 + (x * (146879.0 + (x * (-1602610.0 + (x * (3195183.0 + (x * (-2554139.0 + (x * 729754.0))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (-13.0 + (x * 13.0)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (21.0 + (x * (-69.0 + (x * 46.0)))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n/* eslint-disable no-mixed-operators, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport gammaincinv from './../../../../base/special/gammaincinv';\nimport ln from './../../../../base/special/ln';\nimport sqrt from './../../../../base/special/sqrt';\nimport SMALLEST_SUBNORMAL from '@stdlib/constants/float64/smallest-subnormal';\nimport temmeRootFinder from './root_finder.js';\nimport newtonRaphsonIterate from './newton_raphson.js';\n\n\n// MAIN //\n\n/**\n* Carries out the third method by Temme (described in section 4).\n*\n* ## References\n*\n* - Temme, N. M. 1992. \"Incomplete Laplace Integrals: Uniform Asymptotic Expansion with Application to the Incomplete Beta Function.\" _Journal of Computational and Applied Mathematics_ 41 (1–2): 1638–63. doi:[10.1016/0377-0427(92)90244-R](https://doi.org/10.1016/0377-0427(92)90244-R).\n*\n* @private\n* @param {PositiveNumber} a - function parameter\n* @param {PositiveNumber} b - function parameter\n* @param {Probability} p - function parameter\n* @param {Probability} q - probability equal to `1-p`\n* @returns {number} function value\n*/\nfunction temme3( a, b, p, q ) {\n\tvar cross;\n\tvar roots;\n\tvar lower;\n\tvar upper;\n\tvar eta0;\n\tvar eta;\n\tvar w10;\n\tvar w12;\n\tvar w13;\n\tvar w14;\n\tvar e1;\n\tvar e2;\n\tvar e3;\n\tvar mu;\n\tvar d2;\n\tvar d3;\n\tvar d4;\n\tvar w2;\n\tvar w3;\n\tvar w4;\n\tvar w5;\n\tvar w6;\n\tvar w7;\n\tvar w8;\n\tvar w9;\n\tvar w1;\n\tvar d;\n\tvar w;\n\tvar u;\n\tvar x;\n\n\t// Begin by getting an initial approximation for the quantity eta from the dominant part of the incomplete beta:\n\tif ( p < q ) {\n\t\teta0 = gammaincinv( p, b, true );\n\t} else {\n\t\teta0 = gammaincinv( q, b, false );\n\t}\n\teta0 /= a;\n\n\t// Define the variables and powers we'll need later on:\n\tmu = b / a;\n\tw = sqrt( 1.0+mu );\n\tw2 = w * w;\n\tw3 = w2 * w;\n\tw4 = w2 * w2;\n\tw5 = w3 * w2;\n\tw6 = w3 * w3;\n\tw7 = w4 * w3;\n\tw8 = w4 * w4;\n\tw9 = w5 * w4;\n\tw10 = w5 * w5;\n\td = eta0 - mu;\n\td2 = d * d;\n\td3 = d2 * d;\n\td4 = d2 * d2;\n\tw1 = w + 1.0;\n\tw12 = w1 * w1;\n\tw13 = w1 * w12;\n\tw14 = w12 * w12;\n\n\t// Now we need to compute the perturbation error terms that convert eta0 to eta, these are all polynomials of polynomials. Probably these should be re-written to use tabulated data (see examples above), but it's less of a win in this case as we need to calculate the individual powers for the denominator terms anyway, so we might as well use them for the numerator-polynomials as well. Refer to p154-p155 for the details of these expansions:\n\te1 = (w+2.0) * (w-1.0) / (3.0*w);\n\te1 += (w3 + 9.0*w2 + 21.0*w + 5.0) * d / (36.0*w2*w1);\n\te1 -= (w4 - 13.0*w3 + 69.0*w2 + 167.0*w + 46.0) * d2 / (1620.0*w12*w3);\n\te1 -= (7.0*w5 + 21.0*w4 + 70.0*w3 + 26.0*w2 - 93.0*w - 31.0) * d3 / (6480.0*w13*w4);\n\te1 -= (75.0*w6 + 202.0*w5 + 188.0*w4 - 888.0*w3 - 1345.0*w2 + 118.0*w + 138.0) * d4 / (272160.0*w14*w5);\n\n\te2 = (28.0*w4 + 131.0*w3 + 402.0*w2 + 581.0*w + 208.0) * (w-1.0) / (1620.0*w1*w3);\n\te2 -= (35.0*w6 - 154.0*w5 - 623.0*w4 - 1636.0*w3 - 3983.0*w2 - 3514.0*w - 925.0) * d / (12960.0*w12*w4);\n\te2 -= (2132.0*w7 + 7915.0*w6 + 16821.0*w5 + 35066.0*w4 + 87490.0*w3 + 141183.0*w2 + 95993.0*w + 21640.0) * d2 / (816480.0*w5*w13);\n\te2 -= (11053.0*w8 + 53308.0*w7 + 117010.0*w6 + 163924.0*w5 + 116188.0*w4 - 258428.0*w3 - 677042.0*w2 - 481940.0*w - 105497.0) * d3 / (14696640.0*w14*w6);\n\n\te3 = -((3592.0*w7 + 8375.0*w6 - 1323.0*w5 - 29198.0*w4 - 89578.0*w3 - 154413.0*w2 - 116063.0*w - 29632.0) * (w-1.0)) / (816480.0*w5*w12);\n\te3 -= (442043.0*w9 + 2054169.0*w8 + 3803094.0*w7 + 3470754.0*w6 + 2141568.0*w5 - 2393568.0*w4 - 19904934.0*w3 - 34714674.0*w2 - 23128299.0*w - 5253353.0) * d / (146966400.0*w6*w13);\n\te3 -= (116932.0*w10 + 819281.0*w9 + 2378172.0*w8 + 4341330.0*w7 + 6806004.0*w6 + 10622748.0*w5 + 18739500.0*w4 + 30651894.0*w3 + 30869976.0*w2 + 15431867.0*w + 2919016.0) * d2 / (146966400.0*w14*w7);\n\n\t// Combine eta0 and the error terms to compute eta (Second equation p155):\n\teta = eta0 + (e1/a) + (e2/(a*a)) + (e3/(a*a*a));\n\n\t/*\n\t\tNow we need to solve Eq 4.2 to obtain x. For any given value of\n\t\teta there are two solutions to this equation, and since the distribution\n\t\tmay be very skewed, these are not related by x ~ 1-x we used when\n\t\timplementing section 3 above. However we know that:\n\n\t\t\tcross < x <= 1 ; iff eta < mu\n\t\t\t\tx == cross ; iff eta == mu\n\t\t\t\t0 <= x < cross ; iff eta > mu\n\n\t\tWhere cross == 1 / (1 + mu)\n\t\tMany thanks to Prof Temme for clarifying this point. Therefore we'll just jump straight into Newton iterations to solve Eq 4.2 using these bounds, and simple bisection as the first guess, in practice this converges pretty quickly and we only need a few digits correct anyway:\n\t*/\n\tif ( eta <= 0 ) {\n\t\teta = SMALLEST_SUBNORMAL;\n\t}\n\tu = eta - ( mu*ln(eta) ) + ( ( 1.0+mu ) * ln( 1.0+mu ) ) - mu;\n\tcross = 1.0 / ( 1.0+mu );\n\tlower = (eta < mu) ? cross : 0.0;\n\tupper = (eta < mu) ? 1.0 : cross;\n\tx = (lower+upper) / 2.0;\n\troots = temmeRootFinder( u, mu );\n\treturn newtonRaphsonIterate( roots, x, lower, upper, 32, 100 );\n}\n\n\n// EXPORTS //\n\nexport default temme3;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/detail/ibeta_inverse.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n* Copyright Paul A. Bristow 2007.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as kernelBetainc } from './../../../../base/special/kernel-betainc';\nimport abs from './../../../../base/special/abs';\nimport FLOAT64_MAX from '@stdlib/constants/float64/max';\nimport FLOAT64_MIN_NORM from '@stdlib/constants/float64/smallest-normal';\n\n\n// MAIN //\n\n/**\n* Returns a root finding function.\n*\n* @private\n* @param {PositiveNumber} a - function parameter\n* @param {PositiveNumber} b - function parameter\n* @param {Probability} target - probability value\n* @param {boolean} invert - boolean indicating whether to find the roots of the upper or lower incomplete beta function\n* @returns {Function} root finding function\n*/\nfunction ibetaRoots( a, b, target, invert ) {\n\treturn roots;\n\n\t/**\n\t* Calculates roots.\n\t*\n\t* @private\n\t* @param {number} x - input value\n\t* @returns {Array} roots\n\t*/\n\tfunction roots( x ) {\n\t\tvar buf;\n\t\tvar f1;\n\t\tvar f2;\n\t\tvar f;\n\t\tvar y;\n\n\t\ty = 1.0 - x;\n\n\t\tbuf = [ 0.0, 0.0 ];\n\t\tkernelBetainc( x, a, b, true, invert, buf, 1, 0 );\n\t\tf = buf[ 0 ] - target;\n\t\tf1 = buf[ 1 ];\n\t\tif ( invert ) {\n\t\t\tf1 = -f1;\n\t\t}\n\t\tif ( y === 0.0 ) {\n\t\t\ty = FLOAT64_MIN_NORM * 64.0;\n\t\t}\n\t\tif ( x === 0.0 ) {\n\t\t\tx = FLOAT64_MIN_NORM * 64.0;\n\t\t}\n\t\tf2 = f1 * ( -(y*a) + ( ( b-2.0 ) * x ) + 1.0 );\n\t\tif ( abs( f2 ) < y * x * FLOAT64_MAX ) {\n\t\t\tf2 /= (y * x);\n\t\t}\n\t\tif ( invert ) {\n\t\t\tf2 = -f2;\n\t\t}\n\t\t// Make sure we don't have a zero derivative:\n\t\tif ( f1 === 0.0 ) {\n\t\t\tf1 = ( ( invert ) ? -1.0 : 1.0 ) * FLOAT64_MIN_NORM * 64.0;\n\t\t}\n\t\treturn [ f, f1, f2 ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ibetaRoots;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_62_0/boost/math/tools/roots.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport ldexp from './../../../../base/special/ldexp';\nimport sign from './../../../../base/special/signum';\nimport max from './../../../../base/special/max';\nimport MAX_VALUE from '@stdlib/constants/float64/max';\n\n\n// MAIN //\n\n/**\n* Performs root finding via third order Halley iteration.\n*\n* @private\n* @param {Array} fun - array of function and its first two derivatives\n* @param {number} guess - initial starting value\n* @param {number} minimum - minimum possible value for the result, used as initial lower bracket\n* @param {number} maximum - maximum possible value for the result, used as initial upper bracket\n* @param {PositiveInteger} digits - desired number of binary digits\n* @param {PositiveInteger} maxIter - maximum number of iterations\n* @returns {number} function value\n*/\nfunction halleyIterate( fun, guess, minimum, maximum, digits, maxIter ) {\n\tvar convergence;\n\tvar outOfBounds;\n\tvar delta1;\n\tvar delta2;\n\tvar factor;\n\tvar result;\n\tvar f0Last;\n\tvar count;\n\tvar delta;\n\tvar denom;\n\tvar diff;\n\tvar num;\n\tvar res;\n\tvar f0;\n\tvar f1;\n\tvar f2;\n\n\tf0 = 0.0;\n\toutOfBounds = false;\n\tresult = guess;\n\tfactor = ldexp( 1.0, 1.0-digits );\n\tdelta = max( 10000000*guess, 10000000 ); // Arbitrarily large delta...\n\tf0Last = 0;\n\tdelta1 = delta;\n\tdelta2 = delta;\n\n\tcount = maxIter;\n\tdo {\n\t\tf0Last = f0;\n\t\tdelta2 = delta1;\n\t\tdelta1 = delta;\n\t\tres = fun( result );\n\t\tf0 = res[ 0 ];\n\t\tf1 = res[ 1 ];\n\t\tf2 = res[ 2 ];\n\t\tcount -= 1;\n\n\t\tif ( f0 === 0.0 ) {\n\t\t\tbreak;\n\t\t}\n\t\tif ( f1 === 0.0 ) {\n\t\t\t// Oops zero derivative!!!\n\t\t\tif ( f0Last === 0.0 ) {\n\t\t\t\t// Must be the first iteration, pretend that we had a previous one at either min or max:\n\t\t\t\tif ( result === minimum ) {\n\t\t\t\t\tguess = maximum;\n\t\t\t\t} else {\n\t\t\t\t\tguess = minimum;\n\t\t\t\t}\n\t\t\t\tf0Last = fun( guess );\n\t\t\t\tdelta = guess - result;\n\t\t\t}\n\t\t\tif ( sign( f0Last ) * sign( f0 ) < 0 ) {\n\t\t\t\t// We've crossed over so move in opposite direction to last step:\n\t\t\t\tif ( delta < 0 ) {\n\t\t\t\t\tdelta = ( result-minimum ) / 2.0;\n\t\t\t\t} else {\n\t\t\t\t\tdelta = ( result-maximum ) / 2.0;\n\t\t\t\t}\n\t\t\t// Move in same direction as last step:\n\t\t\t} else if ( delta < 0 ) {\n\t\t\t\tdelta = (result-maximum) / 2.0;\n\t\t\t} else {\n\t\t\t\tdelta = (result-minimum) / 2.0;\n\t\t\t}\n\t\t} else if ( f2 === 0.0 ) {\n\t\t\tdelta = f0 / f1;\n\t\t} else {\n\t\t\tdenom = 2.0 * f0;\n\t\t\tnum = ( 2.0 * f1 ) - ( f0 * ( f2 / f1 ) );\n\t\t\tif ( abs(num) < 1.0 && ( abs(denom) >= abs(num) * MAX_VALUE ) ) {\n\t\t\t\t// Possible overflow, use Newton step:\n\t\t\t\tdelta = f0 / f1;\n\t\t\t} else {\n\t\t\t\tdelta = denom / num;\n\t\t\t}\n\t\t\tif ( delta * f1 / f0 < 0.0 ) {\n\t\t\t\t// Probably cancellation error, try a Newton step instead:\n\t\t\t\tdelta = f0 / f1;\n\t\t\t\tif ( abs(delta) > 2.0 * abs(guess) ) {\n\t\t\t\t\tdelta = ( (delta < 0.0) ? -1.0 : 1.0 ) * 2.0 * abs( guess );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconvergence = abs( delta / delta2 );\n\t\tif ( convergence > 0.8 && convergence < 2.0 ) {\n\t\t\t// Last two steps haven't converged, try bisection:\n\t\t\tdelta = ( delta > 0.0 ) ? ( result-minimum )/2.0 : ( result-maximum )/2.0; // eslint-disable-line max-len\n\t\t\tif ( abs(delta) > result ) {\n\t\t\t\tdelta = sign( delta ) * result; // Protect against huge jumps!\n\t\t\t}\n\t\t\t// Reset delta2 so that this branch will *not* be taken on the next iteration:\n\t\t\tdelta2 = delta * 3.0;\n\t\t}\n\t\tguess = result;\n\t\tresult -= delta;\n\n\t\t// Check for out of bounds step:\n\t\tif ( result < minimum ) {\n\t\t\tif (\n\t\t\t\tabs(minimum) < 1 &&\n\t\t\t\tabs(result) > 1 &&\n\t\t\t\t( MAX_VALUE / abs(result) < abs(minimum) )\n\t\t\t) {\n\t\t\t\tdiff = 1000.0;\n\t\t\t} else {\n\t\t\t\tdiff = result / minimum;\n\t\t\t}\n\t\t\tif ( abs(diff) < 1.0 ) {\n\t\t\t\tdiff = 1.0 / diff;\n\t\t\t}\n\t\t\tif ( !outOfBounds && diff > 0.0 && diff < 3.0 ) {\n\t\t\t\t// Only a small out of bounds step, let's assume that the result is probably approximately at minimum:\n\t\t\t\tdelta = 0.99 * (guess - minimum);\n\t\t\t\tresult = guess - delta;\n\t\t\t\toutOfBounds = true; // Only take this branch once!\n\t\t\t} else {\n\t\t\t\tdelta = (guess - minimum) / 2.0;\n\t\t\t\tresult = guess - delta;\n\t\t\t\tif ( result === minimum || result === maximum ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( result > maximum ) {\n\t\t\tif (\n\t\t\t\tabs(maximum) < 1.0 &&\n\t\t\t\tabs(result) > 1.0 &&\n\t\t\t\tMAX_VALUE / abs(result) < abs(maximum)\n\t\t\t) {\n\t\t\t\tdiff = 1000.0;\n\t\t\t} else {\n\t\t\t\tdiff = result / maximum;\n\t\t\t}\n\t\t\tif ( abs(diff) < 1.0 ) {\n\t\t\t\tdiff = 1.0 / diff;\n\t\t\t}\n\t\t\tif ( !outOfBounds && diff > 0.0 && diff < 3.0 ) {\n\t\t\t\t// Only a small out of bounds step, let's assume that the result is probably approximately at minimum:\n\t\t\t\tdelta = 0.99 * (guess - maximum);\n\t\t\t\tresult = guess - delta;\n\t\t\t\toutOfBounds = true; // Only take this branch once!\n\t\t\t} else {\n\t\t\t\tdelta = ( guess - maximum ) / 2.0;\n\t\t\t\tresult = guess - delta;\n\t\t\t\tif ( result === minimum || result === maximum ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Update brackets:\n\t\tif ( delta > 0.0 ) {\n\t\t\tmaximum = guess;\n\t\t} else {\n\t\t\tminimum = guess;\n\t\t}\n\t} while ( count && ( abs(result * factor) < abs(delta) ) );\n\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default halleyIterate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The code is adapted from the Fortran routine from the FNLIB library of the [SLATEC Common Mathematical Library]{@link https://netlib.org/slatec/fnlib/dcsevl.f}.\n*\n* The original code was developed by W. Fullerton of Los Alamos Scientific Laboratory, a governmental institution, and is therefore public domain.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar ALGMCS = [\n\t+0.1276642195630062933333333333333e-30,\n\t-0.3401102254316748799999999999999e-29,\n\t+0.1025680058010470912000000000000e-27,\n\t-0.3547598158101070547199999999999e-26,\n\t+0.1429227355942498147573333333333e-24,\n\t-0.6831888753985766870111999999999e-23,\n\t+0.3962837061046434803679306666666e-21,\n\t-0.2868042435334643284144622399999e-19,\n\t+0.2683181998482698748957538846666e-17,\n\t-0.3399615005417721944303330599666e-15,\n\t+0.6221098041892605227126015543416e-13,\n\t-0.1809129475572494194263306266719e-10,\n\t+0.9810825646924729426157171547487e-8,\n\t-0.1384948176067563840732986059135e-4,\n\t+0.1666389480451863247205729650822e+0\n];\nvar LEN = ALGMCS.length;\n\n\n// MAIN //\n\n/**\n* Evaluates the n-term Chebyshev series at `x`.\n*\n* ## References\n*\n* - Broucke, Roger. 1973. \"Algorithm: Ten Subroutines for the Manipulation of Chebyshev Series.\" _Communications of the ACM_ 16 (4). New York, NY, USA: ACM: 254–56. doi:[10.1145/362003.362037](https://doi.org/10.1145/362003.362037).\n* - Fox, Leslie, and Ian Bax Parker. 1968. _Chebyshev polynomials in numerical analysis_. Oxford Mathematical Handbooks. London, United Kingdom: Oxford University Press. .\n*\n* @private\n* @param {number} x - value at which the series is to be evaluated\n* @returns {number} series value\n*/\nfunction dcseval( x ) {\n\tvar twox;\n\tvar b2;\n\tvar b1;\n\tvar b0;\n\tvar i;\n\n\tif ( x < -1.1 || x > 1.1 ) {\n\t\treturn NaN;\n\t}\n\tb1 = 0.0;\n\tb0 = 0.0;\n\ttwox = 2.0 * x;\n\tfor ( i = 0; i < LEN; i++ ) {\n\t\tb2 = b1;\n\t\tb1 = b0;\n\t\tb0 = (twox*b1) - b2 + ALGMCS[ i ];\n\t}\n\treturn ( b0-b2 ) * 0.5;\n}\n\n\n// EXPORTS //\n\nexport default dcseval;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The code is adapted from the Fortran routine from the FNLIB library of the [SLATEC Common Mathematical Library]{@link https://netlib.org/fn/d9lgmc.f}.\n*\n* The original code was developed by W. Fullerton of Los Alamos Scientific Laboratory, a governmental institution, and is therefore public domain.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport pow from './../../../../base/special/pow';\nimport dceval from './dceval.js';\n\n\n// VARIABLES //\n\nvar XBIG = 94906265.62425156;\nvar XMAX = 3.745194030963158e306;\n\n\n// MAIN //\n\n/**\n* Computes the log gamma correction factor for `x >= 10`.\n*\n* ```tex\n* \\log(\\gamma(x)) = \\log(\\sqrt{2*\\Pi}) + (x-0.5) \\cdot \\log(x) - x \\operatorname{R9LGMC}(x).\n* ```\n*\n* @private\n* @param {number} x - input value\n* @returns {number} correction value\n*/\nfunction gammaCorrection( x ) {\n\tif ( x < 10.0 ) {\n\t\treturn NaN;\n\t}\n\t// Check for underflow...\n\tif ( x >= XMAX ) {\n\t\treturn 0.0;\n\t}\n\tif ( x < XBIG ) {\n\t\treturn dceval( (2.0*pow( 10.0/x, 2.0 )) - 1.0 ) / x;\n\t}\n\treturn 1.0 / (x * 12.0);\n}\n\n\n// EXPORTS //\n\nexport default gammaCorrection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The code is adapted from the Fortran routine from the FNLIB library of the [SLATEC Common Mathematical Library]{@link https://www.netlib.org/slatec/fnlib/albeta.f}.\n*\n* The original code was developed by W. Fullerton of Los Alamos Scientific Laboratory, a governmental institution, and is therefore public domain.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport gammaln from './../../../../base/special/gammaln';\nimport log1p from './../../../../base/special/log1p';\nimport gamma from './../../../../base/special/gamma';\nimport max from './../../../../base/special/max';\nimport min from './../../../../base/special/min';\nimport ln from './../../../../base/special/ln';\nimport LN_SQRT_TWO_PI from '@stdlib/constants/float64/ln-sqrt-two-pi';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport correction from './gamma_correction.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of the beta function.\n*\n* @param {NonNegativeNumber} a - first input value\n* @param {NonNegativeNumber} b - second input value\n* @returns {number} natural logarithm of beta function\n*\n* @example\n* var v = betaln( 0.0, 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = betaln( 1.0, 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = betaln( -1.0, 2.0 );\n* // returns NaN\n*\n* @example\n* var v = betaln( 5.0, 0.2 );\n* // returns ~1.218\n*\n* @example\n* var v = betaln( 4.0, 1.0 );\n* // returns ~-1.386\n*\n* @example\n* var v = betaln( NaN, 2.0 );\n* // returns NaN\n*/\nfunction betaln( a, b ) {\n\tvar corr;\n\tvar p;\n\tvar q;\n\n\tp = min( a, b );\n\tq = max( a, b );\n\n\tif ( p < 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( p === 0.0 ) {\n\t\treturn PINF;\n\t}\n\tif ( q === PINF ) {\n\t\treturn NINF;\n\t}\n\t// Case: p and q are big\n\tif ( p >= 10.0 ) {\n\t\tcorr = correction( p ) + correction( q ) - correction( p+q );\n\t\treturn ( -0.5*ln( q ) ) + LN_SQRT_TWO_PI + corr + ( (p-0.5) * ln( p/(p+q) ) ) + ( q*log1p( -p/(p+q) ) ); // eslint-disable-line max-len\n\t}\n\t// Case: p is small, but q is big\n\tif ( q >= 10.0 ) {\n\t\tcorr = correction( q ) - correction( p+q );\n\t\treturn gammaln( p ) + corr + p - (p*ln( p+q )) + ( (q-0.5)*log1p( -p/(p+q) ) ); // eslint-disable-line max-len\n\t}\n\t// Case: p and q are small\n\treturn ln( gamma( p ) * ( gamma( q ) / gamma( p+q ) ) );\n}\n\n\n// EXPORTS //\n\nexport default betaln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport abs from './../../../../base/special/abs';\nimport cos from './../../../../base/special/cos';\nimport sin from './../../../../base/special/sin';\nimport floor from './../../../../base/special/floor';\nimport PI from '@stdlib/constants/float64/pi';\nimport MAX_INTEGER from '@stdlib/constants/float64/max-safe-integer';\n\n\n// VARIABLES //\n\nvar MAX_INTEGER_P1 = MAX_INTEGER + 1;\n\n\n// MAIN //\n\n/**\n* Computes the value of `cos(πx)`.\n*\n* ## Notes\n*\n* - `cos(-x) = cos(x)`\n* - `sin(-x) = -sin(x)`\n* - `cos(π/2) = 0`\n* - `cos(0) = 1`\n* - `cos(π) = -1`\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = cospi( 0.0 );\n* // returns 1.0\n*\n* @example\n* var y = cospi( 0.5 );\n* // returns 0.0\n*\n* @example\n* var y = cospi( 0.1 );\n* // returns ~0.951\n*\n* @example\n* var y = cospi( NaN );\n* // returns NaN\n*/\nfunction cospi( x ) {\n\tvar ax;\n\tvar ix;\n\tvar rx;\n\tvar y;\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) ) {\n\t\treturn NaN;\n\t}\n\tax = abs( x );\n\tif ( ax > MAX_INTEGER_P1 ) {\n\t\t// Always even integer...\n\t\treturn 1.0;\n\t}\n\t// Argument reduction (reduce to [0,1))...\n\tix = floor( ax );\n\trx = ax - ix;\n\tif ( rx === 0.5 ) {\n\t\treturn 0.0;\n\t}\n\tif ( rx < 0.25 ) {\n\t\ty = cos( PI*rx );\n\t}\n\telse if ( rx < 0.75 ) {\n\t\trx = 0.5 - rx;\n\t\ty = sin( PI*rx ); // recall sin(-x) = -sin(x), thus returned result will be properly signed\n\t}\n\telse {\n\t\trx = 1.0 - rx;\n\t\ty = -cos( PI*rx );\n\t}\n\t// If the integer of `x` is odd, we need to flip the sign...\n\treturn ( ix%2 === 1 ) ? -y : y;\n}\n\n\n// EXPORTS //\n\nexport default cospi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport cospi from './../../../../base/special/cospi';\nimport pow from './../../../../base/special/pow';\nimport PHI from '@stdlib/constants/float64/phi';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// VARIABLES //\n\nvar SQRT_5 = 2.23606797749979;\n\n\n// MAIN //\n\n/**\n* Evaluates Binet's formula extended to real numbers.\n*\n* ## Notes\n*\n* - [Non integer Fibonacci numbers][1]\n* - [Interpolated Fibonacci numbers - real or complex][2]\n*\n* [1]: https://math.stackexchange.com/questions/798190/non-integer-fibonacci-numbers\n* [2]: https://math.stackexchange.com/questions/589841/interpolated-fibonacci-numbers-real-or-complex\n*\n* @param {number} x - input value\n* @returns {number} real-valued result\n*\n* @example\n* var y = binet( 0.0 );\n* // returns 0.0\n*\n* @example\n* var y = binet( 1.0 );\n* // returns 1.0\n*\n* @example\n* var y = binet( 2.0 );\n* // returns 1.0\n*\n* @example\n* var y = binet( 3.0 );\n* // returns 2.0\n*\n* @example\n* var y = binet( 4.0 );\n* // returns 3.0\n*\n* @example\n* var y = binet( 5.0 );\n* // returns ~5.0\n*\n* @example\n* var y = binet( 6.0 );\n* // returns ~8.0\n*\n* @example\n* var y = binet( NaN );\n* // returns NaN\n*\n* @example\n* var y = binet( 3.14 );\n* // returns ~2.12\n*\n* @example\n* var y = binet( -1.0 );\n* // returns 1.0\n*/\nfunction binet( x ) {\n\tvar a;\n\tvar b;\n\tif (\n\t\tisnan( x ) ||\n\t\tx === PINF ||\n\t\tx === NINF\n\t) {\n\t\treturn NaN;\n\t}\n\ta = pow( PHI, x );\n\tb = cospi( x ) / a;\n\treturn ( a - b ) / SQRT_5;\n}\n\n\n// EXPORTS //\n\nexport default binet;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse avoiding overflow and underflow.\n*\n* @param {number} x - number\n* @param {number} y - number\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( -5.0, 12.0 );\n* // returns 13.0\n*\n* @example\n* var h = hypot( NaN, 12.0 );\n* // returns NaN\n*\n* @example\n* var h = hypot( -0.0, -0.0 );\n* // returns 0.0\n*/\nfunction hypot( x, y ) {\n\tvar tmp;\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || isInfinite( y ) ) {\n\t\treturn PINF;\n\t}\n\tif ( x < 0.0 ) {\n\t\tx = -x;\n\t}\n\tif ( y < 0.0 ) {\n\t\ty = -y;\n\t}\n\tif ( x < y ) {\n\t\ttmp = y;\n\t\ty = x;\n\t\tx = tmp;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\ty /= x;\n\treturn x * sqrt( 1.0 + (y*y) );\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hypot from './../../../../base/special/hypot';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value of a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @returns {number} absolute value\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var v = cabs( new Complex128( 5.0, 3.0 ) );\n* // returns ~5.83\n*/\nfunction cabs( z ) {\n\t// TODO: consider whether to use C99 rules for special cases involving infinities and nans (see https://github.com/python/cpython/blob/f4c03484da59049eb62a9bf7777b963e2267d187/Objects/complexobject.c#L191)\n\treturn hypot( real( z ), imag( z ) );\n}\n\n\n// EXPORTS //\n\nexport default cabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport isnanf from './../../../../base/assert/is-nanf';\nimport isInfinitef from './../../../../base/assert/is-infinitef';\nimport PINF from '@stdlib/constants/float32/pinf';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse avoiding overflow and underflow (single-precision).\n*\n* @param {number} x - number\n* @param {number} y - number\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypotf( -5.0, 12.0 );\n* // returns 13.0\n*\n* @example\n* var h = hypotf( NaN, 12.0 );\n* // returns NaN\n*\n* @example\n* var h = hypotf( -0.0, -0.0 );\n* // returns 0.0\n*/\nfunction hypotf( x, y ) {\n\tvar tmp;\n\tif ( isnanf( x ) || isnanf( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinitef( x ) || isInfinitef( y ) ) {\n\t\treturn PINF;\n\t}\n\tx = float64ToFloat32( x );\n\ty = float64ToFloat32( y );\n\tif ( x < 0.0 ) {\n\t\tx = -x;\n\t}\n\tif ( y < 0.0 ) {\n\t\ty = -y;\n\t}\n\tif ( x < y ) {\n\t\ttmp = y;\n\t\ty = x;\n\t\tx = tmp;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\ty = float64ToFloat32( y / x );\n\treturn float64ToFloat32( x * float64ToFloat32( sqrt( float64ToFloat32( 1.0 + float64ToFloat32(y*y) ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default hypotf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_cbrt.c?view=markup}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n*\n* Optimized by Bruce D. Evans.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport FLOAT64_SMALLEST_NORMAL from '@stdlib/constants/float64/smallest-normal';\nimport SIGN_MASK from '@stdlib/constants/float64/high-word-sign-mask';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport isinfinite from './../../../../base/assert/is-infinite';\nimport fromWords from '@stdlib/number/float64/base/from-words';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport isnan from './../../../../base/assert/is-nan';\nimport polyval from './polyval_p.js';\n\n\n// VARIABLES //\n\n// 2**32 - 1 = 4294967295 => 11111111111111111111111111111111\nvar HIGH_WORD_MASK = 4294967295>>>0; // asm type annotation\n\n// 2**31 + 2**30 = 3221225472 => 11000000000000000000000000000000\nvar LOW_WORD_MASK = 3221225472>>>0; // asm type annotation\n\n// 2**54\nvar TWO_54 = 18014398509481984.0;\n\n// 2**31 = 0x80000000 = 2147483648 => 1 00000000000 00000000000000000000\nvar TWO_31 = 0x80000000>>>0; // asm type annotation\n\n// 0x00000001 = 1 => 0 00000000000 00000000000000000001\nvar ONE = 0x00000001>>>0; // asm type annotation\n\n// B1 = (1023-1023/3-0.03306235651)*2**20\nvar B1 = 715094163>>>0; // asm type annotation\n\n// B2 = (1023-1023/3-54/3-0.03306235651)*2**20\nvar B2 = 696219795>>>0; // asm type annotation\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000\nvar FLOAT64_SMALLEST_NORMAL_HIGH_WORD = getHighWord( FLOAT64_SMALLEST_NORMAL ); // eslint-disable-line id-length\n\n// Words workspace:\nvar WORDS = [ 0>>>0, 0>>>0 ]; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes the cube root of a double-precision floating-point number.\n*\n* ## Method\n*\n* 1. Rough cube root to \\\\( 5 \\\\) bits:\n*\n* ```tex\n* \\sqrt\\[3\\]{2^e (1+m)} \\approx 2^(e/3) \\biggl(1 + \\frac{(e \\mathrm{mod}\\ 3) + m}{3}\\biggr)\n* ```\n*\n* where \\\\( e \\\\) is a nonnegative integer, \\\\( m \\\\) is real and in \\\\( \\[0, 1) \\\\), and \\\\( / \\\\) and \\\\( \\mathrm{mod} \\\\) are integer division and modulus with rounding toward \\\\( -\\infty \\\\).\n*\n* The RHS is always greater than or equal to the LHS and has a maximum relative error of about \\\\( 1 \\\\) in \\\\( 16 \\\\).\n*\n* Adding a bias of \\\\( -0.03306235651 \\\\) to the \\\\( (e \\mathrm{mod} 3+ m )/ 3 \\\\) term reduces the error to about \\\\( 1 \\\\) in \\\\( 32 \\\\).\n*\n* With the IEEE floating point representation, for finite positive normal values, ordinary integer division of the value in bits magically gives almost exactly the RHS of the above provided we first subtract the exponent bias (\\\\( 1023 \\\\) for doubles) and later add it back.\n*\n* We do the subtraction virtually to keep \\\\( e \\geq 0 \\\\) so that ordinary integer division rounds toward \\\\( -\\infty \\\\); this is also efficient.\n*\n* 2. New cube root to \\\\( 23 \\\\) bits:\n*\n* ```tex\n* \\sqrt[3]{x} = t \\cdot \\sqrt\\[3\\]{x/t^3} \\approx t \\mathrm{P}(t^3/x)\n* ```\n*\n* where \\\\( \\mathrm{P}(r) \\\\) is a polynomial of degree \\\\( 4 \\\\) that approximates \\\\( 1 / \\sqrt\\[3\\]{r} \\\\) to within \\\\( 2^{-23.5} \\\\) when \\\\( |r - 1| < 1/10 \\\\).\n*\n* The rough approximation has produced \\\\( t \\\\) such than \\\\( |t/sqrt\\[3\\]{x} - 1| \\lesssim 1/32 \\\\), and cubing this gives us bounds for \\\\( r = t^3/x \\\\).\n*\n* 3. Round \\\\( t \\\\) away from \\\\( 0 \\\\) to \\\\( 23 \\\\) bits (sloppily except for ensuring that the result is larger in magnitude than \\\\( \\sqrt\\[3\\]{x} \\\\) but not much more than \\\\( 2 \\\\) 23-bit ulps larger).\n*\n* With rounding toward zero, the error bound would be \\\\( \\approx 5/6 \\\\) instead of \\\\( \\approx 4/6 \\\\).\n*\n* With a maximum error of \\\\( 2 \\\\) 23-bit ulps in the rounded \\\\( t \\\\), the infinite-precision error in the Newton approximation barely affects the third digit in the final error \\\\( 0.667 \\\\); the error in the rounded \\\\( t \\\\) can be up to about \\\\( 3 \\\\) 23-bit ulps before the final error is larger than \\\\( 0.667 \\\\) ulps.\n*\n* 4. Perform one step of a Newton iteration to get \\\\( 53 \\\\) bits with an error of \\\\( < 0.667 \\\\) ulps.\n*\n* @param {number} x - input value\n* @returns {number} cube root\n*\n* @example\n* var v = cbrt( 64.0 );\n* // returns 4.0\n*\n* @example\n* var v = cbrt( 27.0 );\n* // returns 3.0\n*\n* @example\n* var v = cbrt( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = cbrt( -9.0 );\n* // returns ~-2.08\n*\n* @example\n* var v = cbrt( NaN );\n* // returns NaN\n*/\nfunction cbrt( x ) {\n\tvar sgn;\n\tvar hx;\n\tvar hw;\n\tvar r;\n\tvar s;\n\tvar t;\n\tvar w;\n\tif (\n\t\tx === 0.0 || // handles +-0\n\t\tisnan( x ) ||\n\t\tisinfinite( x )\n\t) {\n\t\treturn x;\n\t}\n\thx = getHighWord( x )>>>0;\n\tsgn = (hx & SIGN_MASK)>>>0;\n\thx &= ABS_MASK;\n\n\t// Rough cbrt...\n\tif ( hx < FLOAT64_SMALLEST_NORMAL_HIGH_WORD ) {\n\t\tt = TWO_54 * x;\n\t\thw = ( getHighWord( t )&ABS_MASK )>>>0;\n\t\thw = ( ( (hw/3)>>>0 ) + B2 )>>>0;\n\t\tt = fromWords( sgn|hw, 0 );\n\t} else {\n\t\tt = 0.0;\n\t\thw = ( ( (hx/3)>>>0 ) + B1 )>>>0;\n\t\tt = setHighWord( t, sgn|hw );\n\t}\n\t// New cbrt...\n\tr = ( t*t ) * ( t/x );\n\tt *= polyval( r );\n\n\t// Round `t` away from `0` to `23` bits...\n\ttoWords.assign( t, WORDS, 1, 0 );\n\tif ( WORDS[ 1 ]&TWO_31 ) {\n\t\t// Perform manual addition, since we are split across two words...\n\t\tWORDS[ 0 ] += ONE; // carry the one\n\t\tWORDS[ 1 ] &= ~TWO_31; // clear the bit\n\t} else {\n\t\tWORDS[ 1 ] |= TWO_31;\n\t}\n\tt = fromWords( WORDS[0]&HIGH_WORD_MASK, WORDS[1]&LOW_WORD_MASK );\n\n\t// Newton iteration...\n\ts = t * t; // `t*t` is exact\n\tr = x / s; // error `<= 0.5` ulps; `|r| < |t|`\n\tw = t + t; // `t+t` is exact\n\tr = ( r-t ) / ( w+r ); // `r-t` is exact; `w+r ~= 3*t`\n\tt += t * r; // error `<= 0.5 + 0.5/3 + eps`\n\n\treturn t;\n}\n\n\n// EXPORTS //\n\nexport default cbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.87595182427177;\n\t}\n\treturn 1.87595182427177 + (x * (-1.8849797954337717 + (x * (1.6214297201053545 + (x * (-0.758397934778766 + (x * 0.14599619288661245))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} cube root\n*\n* @example\n* var v = cbrtf( 64.0 );\n* // returns 4.0\n*\n* @example\n* var v = cbrtf( 27.0 );\n* // returns 3.0\n*\n* @example\n* var v = cbrtf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = cbrtf( -9.0 );\n* // returns ~-2.08\n*\n* @example\n* var v = cbrtf( NaN );\n* // returns NaN\n*/\nfunction cbrtf( x ) {\n\treturn float64ToFloat32( cbrt( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default cbrtf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a single-precision floating-point number toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceilf( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = ceilf( 9.99999 );\n* // returns 10.0\n*\n* @example\n* var v = ceilf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = ceilf( NaN );\n* // returns NaN\n*/\nvar ceilf = Math.ceil; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default ceilf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport ceil from './../../../../base/special/ceil';\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP from '@stdlib/constants/float64/min-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar MAX_INT = MAX_SAFE_INTEGER + 1;\nvar HUGE = 1.0e+308;\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(10^n\\\\) toward positive infinity.\n*\n* ## Method\n*\n* 1. If \\\\(|x| <= 2^{53}\\\\) and \\\\(|n| <= 308\\\\), we can use the formula\n*\n* ```tex\n* \\operatorname{ceiln}(x,n) = \\frac{\\operatorname{ceil}(x \\cdot 10^{-n})}{10^{-n}}\n* ```\n*\n* which shifts the decimal to the nearest multiple of \\\\(10^n\\\\), performs a standard \\\\(\\mathrm{ceil}\\\\) operation, and then shifts the decimal to its original position.\n*\n* \n*\n* If \\\\(x \\cdot 10^{-n}\\\\) overflows, \\\\(x\\\\) lacks a sufficient number of decimal digits to have any effect when rounding. Accordingly, the rounded value is \\\\(x\\\\).\n*\n* \n*\n* \n*\n* Note that rescaling \\\\(x\\\\) can result in unexpected behavior. For instance, the result of \\\\(\\operatorname{ceiln}(0.2+0.1,-16)\\\\) is \\\\(0.3000000000000001\\\\) and not \\\\(0.3\\\\). While possibly unexpected, this is not a bug. The behavior stems from the fact that most decimal fractions cannot be exactly represented as floating-point numbers. And further, rescaling can lead to slightly different fractional values, which, in turn, affects the result of \\\\(\\mathrm{ceil}\\\\).\n*\n* \n*\n* 2. If \\\\(n > 308\\\\), we recognize that the maximum absolute double-precision floating-point number is \\\\(\\approx 1.8\\mbox{e}308\\\\) and, thus, the result of rounding any possible positive finite number \\\\(x\\\\) to the nearest \\\\(10^n\\\\) is \\\\(\\infty\\\\) and any possible negative finite number \\\\(x\\\\) is \\\\(-0\\\\). To ensure consistent behavior with \\\\(\\operatorname{ceil}(x)\\\\), if \\\\(x < 0\\\\), the sign of \\\\(x\\\\) is preserved.\n*\n* 3. If \\\\(n < -324\\\\), \\\\(n\\\\) exceeds the maximum number of possible decimal places (such as with subnormal numbers), and, thus, the rounded value is \\\\(x\\\\).\n*\n* 4. If \\\\(x > 2^{53}\\\\), \\\\(x\\\\) is **always** an integer (i.e., \\\\(x\\\\) has no decimal digits). If \\\\(n <= 0\\\\), the rounded value is \\\\(x\\\\).\n*\n* 5. If \\\\(n < -308\\\\), we let \\\\(m = n + 308\\\\) and modify the above formula to avoid overflow.\n*\n* ```tex\n* \\operatorname{ceiln}(x,n) = \\frac{\\biggl(\\frac{\\operatorname{ceil}( (x \\cdot 10^{308}) 10^{-m})}{10^{308}}\\biggr)}{10^{-m}}\n* ```\n*\n* If overflow occurs, the rounded value is \\\\(x\\\\).\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{ceiln}(\\mathrm{NaN}, n) &= \\mathrm{NaN} \\\\\n* \\operatorname{ceiln}(x, \\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{ceiln}(x, \\pm\\infty) &= \\mathrm{NaN} \\\\\n* \\operatorname{ceiln}(\\pm\\infty, n) &= \\pm\\infty \\\\\n* \\operatorname{ceiln}(\\pm 0, n) &= \\pm 0\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @param {integer} n - integer power of 10\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 2 decimal places:\n* var v = ceiln( 3.141592653589793, -2 );\n* // returns 3.15\n*\n* @example\n* // If n = 0, `ceiln` behaves like `ceil`:\n* var v = ceiln( 3.141592653589793, 0 );\n* // returns 4.0\n*\n* @example\n* // Round a value to the nearest thousand:\n* var v = ceiln( 12368.0, 3 );\n* // returns 13000.0\n*/\nfunction ceiln( x, n ) {\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisInfinite( n )\n\t) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\t// Handle infinities...\n\t\tisInfinite( x ) ||\n\n\t\t// Handle +-0...\n\t\tx === 0.0 ||\n\n\t\t// If `n` exceeds the maximum number of feasible decimal places (such as with subnormal numbers), nothing to round...\n\t\tn < MIN_EXP_SUBNORMAL ||\n\n\t\t// If `|x|` is large enough, no decimals to round...\n\t\t( abs( x ) > MAX_INT && n <= 0 )\n\t) {\n\t\treturn x;\n\t}\n\t// The maximum absolute double is ~1.8e308. Accordingly, any possible positive finite `x` rounded to the nearest >=10^309 is infinity and any negative finite `x` is zero.\n\tif ( n > MAX_EXP ) {\n\t\tif ( x <= 0.0 ) {\n\t\t\treturn -0.0; // preserve the sign (same behavior as ceil)\n\t\t}\n\t\treturn PINF;\n\t}\n\t// If we overflow, return `x`, as the number of digits to the right of the decimal is too small (i.e., `x` is too large / lacks sufficient fractional precision) for there to be any effect when rounding...\n\tif ( n < MIN_EXP ) {\n\t\ts = pow( 10.0, -(n + MAX_EXP) );\n\t\ty = (x*HUGE) * s; // order of operation matters!\n\t\tif ( isInfinite( y ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn ( ceil(y)/HUGE ) / s;\n\t}\n\ts = pow( 10.0, -n );\n\ty = x * s;\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn ceil( y ) / s;\n}\n\n\n// EXPORTS //\n\nexport default ceiln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport exp from './../../../../base/special/exp';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// VARIABLES //\n\n// Pre-allocate workspace array:\nvar WORKSPACE = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Evaluates the cis function for a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = new Complex128( 0.0, 0.0 );\n* // returns \n*\n* var out = ccis( z );\n* // returns \n*\n* var re = real( out );\n* // returns 1.0\n*\n* var im = imag( out );\n* // returns 0.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var z = new Complex128( 1.0, 0.0 );\n* // returns \n*\n* var out = ccis( z );\n* // returns \n*\n* var re = real( out );\n* // returns ~0.54\n*\n* var im = imag( out );\n* // returns ~0.841\n*/\nfunction ccis( z ) {\n\tvar re;\n\tvar im;\n\tvar e;\n\n\tre = real( z );\n\tim = imag( z );\n\n\tsincos( re, WORKSPACE, 1, 0 );\n\tif ( im !== 0.0 ) {\n\t\te = exp( -im );\n\t\tWORKSPACE[ 0 ] *= e;\n\t\tWORKSPACE[ 1 ] *= e;\n\t}\n\treturn new Complex128( WORKSPACE[ 1 ], WORKSPACE[ 0 ] );\n}\n\n\n// EXPORTS //\n\nexport default ccis;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/k_log.h}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport polyvalP from './polyval_p.js';\nimport polyvalQ from './polyval_q.js';\n\n\n// MAIN //\n\n/**\n* Computes `log(1+f) - f` for `1+f` in `~[sqrt(2)/2, sqrt(2)]`.\n*\n* ## Method\n*\n* This function is a helper function for computing logarithms in base \\\\(e\\\\), and what follows describes the overall strategy for doing so. The argument reduction and adding the final term of the polynomial are done by the caller for increased accuracy when different bases are used.\n*\n* 1. Argument Reduction. Find \\\\(k\\\\) and \\\\(f\\\\) such that\n*\n* ```tex\n* x = 2^k \\cdot (1+f)\n* ```\n*\n* where \\\\(\\sqrt(2)/2 < 1+f < \\sqrt(2)\\\\).\n*\n* 2. Approximation of \\\\(\\operatorname{log}(1+f)\\\\). Let\n*\n* ```tex\n* \\begin{align*}\n* s &= \\frac{f}{2+f} \\\\\n* &= 2s + \\frac{2}{3} s^3 + \\frac{2}{5} s^5 + \\ldots \\\\\n* &= 2s + s R\n* \\end{align*}\n* ```\n*\n* based on\n*\n* ```tex\n* \\operatorname{log}(1+f) &= \\operatorname{log}(1+s) - \\operatorname{log}(1-s)\n* ```\n*\n* We use a special Reme algorithm on \\\\(\\[0,0.1716]\\\\) to generate a polynomial of degree \\\\(14\\\\) to approximate \\\\(R\\\\). The maximum error of this polynomial approximation is bounded by \\\\(2^{-58.45}\\\\). In other words,\n*\n* ```tex\n* R(z) ~ L_{g1} s^2 + L_{g2} s^4 + L_{g3} s^6 + L_{g4} s^8 + L_{g5} s^{10} + L_{g6} s^{12} + L_{g7} s^{14}\n* ```\n*\n* where the values of \\\\(L_{g1}\\\\) to \\\\(L_{g7}\\\\) are the polynomial coefficients used in the program below and\n*\n* ```tex\n* L_{g1} s^2 + \\ldots + L_{g7} s^{14} - R(z) \\leq 2^{-58.45}\n* ```\n*\n* Note that\n*\n* ```tex\n* 2s = f - s \\cdot f = f - h_{fsq} + (s \\cdot h_{fsq})\n* ```\n*\n* where \\\\(h_{fsq} = f^{2}/2\\\\).\n*\n* In order to guarantee an error in \\\\(\\operatorname{log}\\\\) below 1 ulp, we compute \\\\(\\operatorname{log}\\\\) by\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{log}(1+f) &= f - s (f - R) & \\textrm{(if f is not too large)} \\\\\n* \\operatorname{log}(1+f) &= f - (h_{fsq} - s (h_{fsq}+R)) & \\textrm{(better accuracy)}\n* \\end{align*}\n*\n* 3. Finally,\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{log}(x) &= k \\cdot \\operatorname{ln2} + \\operatorname{log}(1+f) \\\\\n* &= k \\cdot \\operatorname{ln2}_{hi} + (f-(h_{fsq}-(s \\cdot (h_{fsq}+R) + k \\cdot \\operatorname{ln2}_{lo})))\n* \\end{align*}\n* ```\n*\n* Here, \\\\(\\operatorname{ln2}\\\\) is split into two floating point numbers:\n*\n* ```tex\n* \\operatorname{ln2} = \\operatorname{ln2}_{hi} + \\operatorname{ln2}_{lo}\n* ```\n*\n* where \\\\(n \\cdot \\operatorname{ln2}_{hi}\\\\) is always exact for \\\\(|n| < 2000\\\\).\n*\n* @param {number} f - input value\n* @returns {number} function value\n*\n* @example\n* var v = kernelLog1p( 1.0 );\n* // returns ~0.1931\n*\n* @example\n* var v = kernelLog1p( 1.4142135623730951 );\n* // returns ~0.4672\n*\n* @example\n* var v = kernelLog1p( NaN );\n* // returns NaN\n*/\nfunction kernelLog1p( f ) {\n\tvar hfsq;\n\tvar t1;\n\tvar t2;\n\tvar s;\n\tvar z;\n\tvar R;\n\tvar w;\n\n\ts = f / ( 2.0 + f );\n\tz = s * s;\n\tw = z * z;\n\tt1 = w * polyvalP( w );\n\tt2 = z * polyvalQ( w );\n\tR = t2 + t1;\n\thfsq = 0.5 * f * f;\n\treturn s * ( hfsq + R );\n}\n\n\n// EXPORTS //\n\nexport default kernelLog1p;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.3999999999940942;\n\t}\n\treturn 0.3999999999940942 + (x * (0.22222198432149784 + (x * 0.15313837699209373))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.6666666666666735;\n\t}\n\treturn 0.6666666666666735 + (x * (0.2857142874366239 + (x * (0.1818357216161805 + (x * 0.14798198605116586))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_log2.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport isnan from './../../../../base/assert/is-nan';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport HIGH_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport kernelLog1p from './../../../../base/special/kernel-log1p';\n\n\n// VARIABLES //\n\nvar TWO54 = 1.80143985094819840000e+16; // 0x43500000, 0x00000000\nvar IVLN2HI = 1.44269504072144627571e+00; // 0x3ff71547, 0x65200000\nvar IVLN2LO = 1.67517131648865118353e-10; // 0x3de705fc, 0x2eefa200\n\n// 0x7ff00000 = 2146435072 => 0 11111111111 00000000000000000000 => biased exponent: 2047 = 1023+1023 => 2^1023\nvar HIGH_MAX_NORMAL_EXP = 0x7ff00000|0; // asm type annotation\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000 => biased exponent: 1 = -1022+1023 => 2^-1022\nvar HIGH_MIN_NORMAL_EXP = 0x00100000|0; // asm type annotation\n\n// 0x3ff00000 = 1072693248 => 0 01111111111 00000000000000000000 => biased exponent: 1023 = 0+1023 => 2^0 = 1\nvar HIGH_BIASED_EXP_0 = 0x3ff00000|0; // asm type annotation\n\n// High/low words workspace:\nvar WORDS = [ 0|0, 0|0 ];\n\n\n// MAIN //\n\n/**\n* Evaluates the binary logarithm (base two).\n*\n* @param {NonNegativeNumber} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = log2( 4.0 );\n* // returns 2.0\n*\n* @example\n* var v = log2( 8.0 );\n* // returns 3.0\n*\n* @example\n* var v = log2( 0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = log2( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = log2( NaN );\n* // returns NaN\n*\n* @example\n* var v = log2( -4.0 );\n* // returns NaN\n*/\nfunction log2( x ) {\n\tvar valHi;\n\tvar valLo;\n\tvar hfsq;\n\tvar hx;\n\tvar lx;\n\tvar hi;\n\tvar lo;\n\tvar f;\n\tvar R;\n\tvar w;\n\tvar y;\n\tvar i;\n\tvar k;\n\n\tif ( isnan( x ) || x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thx = WORDS[ 0 ];\n\tlx = WORDS[ 1 ];\n\tk = 0|0; // asm type annotation\n\tif ( hx < HIGH_MIN_NORMAL_EXP ) {\n\t\t// Case: x < 2**-1022\n\t\tif ( ( (hx&ABS_MASK) | lx ) === 0 ) {\n\t\t\treturn NINF;\n\t\t}\n\t\tk -= 54|0; // asm type annotation\n\n\t\t// Subnormal number, scale up x:\n\t\tx *= TWO54;\n\t\thx = getHighWord( x );\n\t}\n\tif ( hx >= HIGH_MAX_NORMAL_EXP ) {\n\t\treturn x + x;\n\t}\n\t// Case: log(1) = +0\n\tif ( hx === HIGH_BIASED_EXP_0 && lx === 0 ) {\n\t\treturn 0.0;\n\t}\n\tk += ( (hx>>20) - BIAS )|0; // asm type annotation\n\thx &= HIGH_SIGNIFICAND_MASK;\n\ti = ( ( hx+0x95f64 ) & HIGH_MIN_NORMAL_EXP )|0; // asm type annotation\n\n\t// Normalize x or x/2...\n\tx = setHighWord( x, hx|(i^HIGH_BIASED_EXP_0) );\n\tk += (i>>20)|0; // asm type annotation\n\ty = k;\n\tf = x - 1.0;\n\thfsq = 0.5 * f * f;\n\tR = kernelLog1p( f );\n\n\t/*\n\t* Notes:\n\t*\n\t* - `f-hfsq` must (for args near `1`) be evaluated in extra precision to avoid a large cancellation when `x` is near `sqrt(2)` or `1/sqrt(2)`.This is fairly efficient since `f-hfsq` only depends on `f`, so can be evaluated in parallel with `R`. Not combining `hfsq` with `R` also keeps `R` small (though not as small as a true `lo` term would be), so that extra precision is not needed for terms involving `R`.\n\t* - When implemented in C, compiler bugs involving extra precision used to break Dekker's theorem for spitting `f-hfsq` as `hi+lo`. These problems are now automatically avoided as a side effect of the optimization of combining the Dekker splitting step with the clear-low-bits step.\n\t* - `y` must (for args near `sqrt(2)` and `1/sqrt(2)`) be added in extra precision to avoid a very large cancellation when `x` is very near these values. Unlike the above cancellations, this problem is specific to base `2`. It is strange that adding `+-1` is so much harder than adding `+-ln2` or `+-log10_2`.\n\t* - This implementation uses Dekker's theorem to normalize `y+val_hi`, so, when implemented in C, compiler bugs may reappear in some configurations.\n\t* - The multi-precision calculations for the multiplications are routine.\n\t*/\n\thi = f - hfsq;\n\thi = setLowWord( hi, 0 );\n\tlo = ( f - hi ) - hfsq + R;\n\tvalHi = hi * IVLN2HI;\n\tvalLo = ( ( lo + hi ) * IVLN2LO ) + ( lo * IVLN2HI );\n\n\tw = y + valHi;\n\tvalLo += ( y - w ) + valHi;\n\tvalHi = w;\n\n\treturn valLo + valHi;\n}\n\n\n// EXPORTS //\n\nexport default log2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log2 from './../../../../base/special/log2';\nimport MAX_EXP from '@stdlib/constants/float64/max-base2-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base2-exponent-subnormal';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of two toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceil2( 3.141592653589793 );\n* // returns 4.0\n*\n* @example\n* var v = ceil2( 9.0 );\n* // returns 16.0\n*\n* @example\n* var v = ceil2( -0.314 );\n* // returns -0.25\n*/\nfunction ceil2( x ) {\n\tvar sign;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\t// Solve the equation `2^p = x` for `p`:\n\tp = log2( x );\n\n\t// If provided the smallest subnormal, no rounding possible:\n\tif ( p === MIN_EXP_SUBNORMAL ) {\n\t\treturn x;\n\t}\n\t// Determine a power of two which rounds the input value toward positive infinity:\n\tif ( sign === -1.0 ) {\n\t\tp = floor( p );\n\t} else {\n\t\tp = ceil( p );\n\t}\n\t// Handle overflow:\n\tif ( p > MAX_EXP ) {\n\t\treturn PINF;\n\t}\n\treturn sign * pow( 2.0, p );\n}\n\n\n// EXPORTS //\n\nexport default ceil2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright and license were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_log10.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setHighWord from '@stdlib/number/float64/base/set-high-word';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport HIGH_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask';\nimport isnan from './../../../../base/assert/is-nan';\nimport BIAS from '@stdlib/constants/float64/exponent-bias';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport kernelLog1p from './../../../../base/special/kernel-log1p';\n\n\n// VARIABLES //\n\nvar TWO54 = 1.80143985094819840000e+16; // 0x43500000, 0x00000000\nvar IVLN10HI = 4.34294481878168880939e-01; // 0x3fdbcb7b, 0x15200000\nvar IVLN10LO = 2.50829467116452752298e-11; // 0x3dbb9438, 0xca9aadd5\nvar LOG10_2HI = 3.01029995663611771306e-01; // 0x3FD34413, 0x509F6000\nvar LOG10_2LO = 3.69423907715893078616e-13; // 0x3D59FEF3, 0x11F12B36\n\n// 0x7ff00000 = 2146435072 => 0 11111111111 00000000000000000000 => biased exponent: 2047 = 1023+1023 => 2^1023\nvar HIGH_MAX_NORMAL_EXP = 0x7ff00000|0; // asm type annotation\n\n// 0x00100000 = 1048576 => 0 00000000001 00000000000000000000 => biased exponent: 1 = -1022+1023 => 2^-1022\nvar HIGH_MIN_NORMAL_EXP = 0x00100000|0; // asm type annotation\n\n// 0x3ff00000 = 1072693248 => 0 01111111111 00000000000000000000 => biased exponent: 1023 = 0+1023 => 2^0 = 1\nvar HIGH_BIASED_EXP_0 = 0x3ff00000|0; // asm type annotation\n\n// High/low words workspace:\nvar WORDS = [ 0|0, 0|0 ];\n\n\n// MAIN //\n\n/**\n* Evaluates the common logarithm (base ten).\n*\n* @param {NonNegativeNumber} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = log10( 4.0 );\n* // returns ~0.602\n*\n* @example\n* var v = log10( 8.0 );\n* // returns ~0.903\n*\n* @example\n* var v = log10( 0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = log10( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = log10( NaN );\n* // returns NaN\n*\n* @example\n* var v = log10( -4.0 );\n* // returns NaN\n*/\nfunction log10( x ) {\n\tvar valHi;\n\tvar valLo;\n\tvar hfsq;\n\tvar hi;\n\tvar lo;\n\tvar hx;\n\tvar lx;\n\tvar y2;\n\tvar f;\n\tvar R;\n\tvar w;\n\tvar y;\n\tvar i;\n\tvar k;\n\n\tif ( isnan( x ) || x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thx = WORDS[ 0 ];\n\tlx = WORDS[ 1 ];\n\tk = 0|0; // asm type annotation\n\n\tif ( hx < HIGH_MIN_NORMAL_EXP ) {\n\t\t// Case: x < 2**-1022\n\t\tif ( ( ( hx & ABS_MASK ) | lx ) === 0 ) {\n\t\t\treturn NINF;\n\t\t}\n\t\tk -= 54|0; // asm type annotation\n\n\t\t// Subnormal number, scale up x:\n\t\tx *= TWO54;\n\t\thx = getHighWord( x );\n\t}\n\tif ( hx >= HIGH_MAX_NORMAL_EXP ) {\n\t\treturn x + x;\n\t}\n\t// Case: log(1) = +0\n\tif ( hx === HIGH_BIASED_EXP_0 && lx === 0 ) {\n\t\treturn 0.0;\n\t}\n\tk += ( ( hx >> 20 ) - BIAS )|0; // asm type annotation\n\thx &= HIGH_SIGNIFICAND_MASK;\n\ti = ( ( hx + 0x95f64 ) & HIGH_MIN_NORMAL_EXP )|0; // asm type annotation\n\n\t// Normalize `x` or `x/2`...\n\tx = setHighWord( x, hx | ( i ^ HIGH_BIASED_EXP_0 ) );\n\tk += ( i >> 20 )|0; // asm type annotation\n\ty = k;\n\tf = x - 1.0;\n\thfsq = 0.5 * f * f;\n\tR = kernelLog1p( f );\n\n\t/*\n\t* Notes:\n\t*\n\t* - `f-hfsq` must (for args near `1`) be evaluated in extra precision to avoid a large cancellation when `x` is near `sqrt(2)` or `1/sqrt(2)`. This is fairly efficient since `f-hfsq` only depends on `f`, so can be evaluated in parallel with `R`. Not combining `hfsq` with `R` also keeps `R` small (though not as small as a true `lo` term would be), so that extra precision is not needed for terms involving `R`.\n\t* - When implemented in C, compiler bugs involving extra precision used to break Dekker's theorem for spitting `f-hfsq` as `hi+lo`. These problems are now automatically avoided as a side effect of the optimization of combining the Dekker splitting step with the clear-low-bits step.\n\t* - This implementation uses Dekker's theorem to normalize `y+val_hi`, so, when implemented in C, compiler bugs may reappear in some configurations.\n\t* - The multi-precision calculations for the multiplications are routine.\n\t*/\n\thi = f - hfsq;\n\thi = setLowWord( hi, 0 );\n\tlo = ( f - hi ) - hfsq + R;\n\tvalHi = hi * IVLN10HI;\n\ty2 = y * LOG10_2HI;\n\tvalLo = ( y * LOG10_2LO ) + ( ( lo + hi ) * IVLN10LO ) + ( lo * IVLN10HI );\n\n\t/*\n\t* Note:\n\t*\n\t* - Extra precision for adding `y*log10_2hi` is not strictly needed since there is no very large cancellation near `x = sqrt(2)` or `x = 1/sqrt(2)`, but we do it anyway since it costs little on CPUs with some parallelism and it reduces the error for many args.\n\t*/\n\tw = y2 + valHi;\n\tvalLo += ( y2 - w ) + valHi;\n\tvalHi = w;\n\n\treturn valLo + valHi;\n}\n\n\n// EXPORTS //\n\nexport default log10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log10 from './../../../../base/special/log10';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of `10` toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceil10( 3.141592653589793 );\n* // returns 10.0\n*\n* @example\n* var v = ceil10( 9.0 );\n* // returns 10.0\n*\n* @example\n* var v = ceil10( -0.314 );\n* // returns -0.1\n*/\nfunction ceil10( x ) {\n\tvar sign;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\t// Solve the equation `10^p = x` for `p`:\n\tp = log10( x );\n\n\t// Determine a power of 10 which rounds the input value toward positive infinity:\n\tif ( sign === -1.0 ) {\n\t\tp = floor( p );\n\t} else {\n\t\tp = ceil( p );\n\t}\n\t// Handle underflow:\n\tif ( p <= MIN_EXP_SUBNORMAL ) {\n\t\treturn sign * 0.0; // sign-preserving\n\t}\n\t// Handle overflow:\n\tif ( p > MAX_EXP ) {\n\t\treturn PINF;\n\t}\n\treturn sign * pow( 10.0, p );\n}\n\n\n// EXPORTS //\n\nexport default ceil10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP from '@stdlib/constants/float64/min-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// VARIABLES //\n\nvar MAX_INT = MAX_SAFE_INTEGER + 1;\nvar HUGE = 1.0e+308;\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point number to the nearest multiple of `10^n` toward negative infinity.\n*\n* ## Method\n*\n* 1. If \\\\(|x| <= 2^{53}\\\\) and \\\\(|n| <= 308\\\\), we can use the formula\n*\n* ```tex\n* \\operatorname{floorn}(x,n) = \\frac{\\operatorname{floor}(x \\cdot 10^{-n})}{10^{-n}}\n* ```\n*\n* which shifts the decimal to the nearest multiple of \\\\(10^n\\\\), performs a standard \\\\(\\mathrm{floor}\\\\) operation, and then shifts the decimal to its original position.\n*\n* \n*\n* If \\\\(x \\cdot 10^{-n}\\\\) overflows, \\\\(x\\\\) lacks a sufficient number of decimal digits to have any effect when rounding. Accordingly, the rounded value is \\\\(x\\\\).\n*\n* \n*\n* \n*\n* Note that rescaling \\\\(x\\\\) can result in unexpected behavior. For instance, the result of \\\\(\\operatorname{floorn}(-0.2-0.1,-16)\\\\) is \\\\(-0.3000000000000001\\\\) and not \\\\(-0.3\\\\). While possibly unexpected, this is not a bug. The behavior stems from the fact that most decimal fractions cannot be exactly represented as floating-point numbers. And further, rescaling can lead to slightly different fractional values, which, in turn, affects the result of \\\\(\\mathrm{floor}\\\\).\n*\n* \n*\n* 2. If \\\\(n > 308\\\\), we recognize that the maximum absolute double-precision floating-point number is \\\\(\\approx 1.8\\mbox{e}308\\\\) and, thus, the result of rounding any possible negative finite number \\\\(x\\\\) to the nearest \\\\(10^n\\\\) is \\\\(-\\infty\\\\) and any possible positive finite number \\\\(x\\\\) is \\\\(+0\\\\). To ensure consistent behavior with \\\\(\\operatorname{floor}(x)\\\\), if \\\\(x > 0\\\\), the sign of \\\\(x\\\\) is preserved.\n*\n* 3. If \\\\(n < -324\\\\), \\\\(n\\\\) exceeds the maximum number of possible decimal places (such as with subnormal numbers), and, thus, the rounded value is \\\\(x\\\\).\n*\n* 4. If \\\\(x > 2^{53}\\\\), \\\\(x\\\\) is **always** an integer (i.e., \\\\(x\\\\) has no decimal digits). If \\\\(n <= 0\\\\), the rounded value is \\\\(x\\\\).\n*\n* 5. If \\\\(n < -308\\\\), we let \\\\(m = n + 308\\\\) and modify the above formula to avoid overflow.\n*\n* ```tex\n* \\operatorname{floorn}(x,n) = \\frac{\\biggl(\\frac{\\operatorname{floor}( (x \\cdot 10^{308}) 10^{-m})}{10^{308}}\\biggr)}{10^{-m}}\n* ```\n*\n* If overflow occurs, the rounded value is \\\\(x\\\\).\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{floorn}(\\mathrm{NaN}, n) &= \\mathrm{NaN} \\\\\n* \\operatorname{floorn}(x, \\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{floorn}(x, \\pm\\infty) &= \\mathrm{NaN} \\\\\n* \\operatorname{floorn}(\\pm\\infty, n) &= \\pm\\infty \\\\\n* \\operatorname{floorn}(\\pm 0, n) &= \\pm 0\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @param {integer} n - integer power of 10\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 4 decimal places:\n* var v = floorn( 3.141592653589793, -4 );\n* // returns 3.1415\n*\n* @example\n* // If n = 0, `floorn` behaves like `floor`:\n* var v = floorn( 3.141592653589793, 0 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest thousand:\n* var v = floorn( 12368.0, 3 );\n* // returns 12000.0\n*/\nfunction floorn( x, n ) {\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisInfinite( n )\n\t) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\t// Handle infinities...\n\t\tisInfinite( x ) ||\n\n\t\t// Handle +-0...\n\t\tx === 0.0 ||\n\n\t\t// If `n` exceeds the maximum number of feasible decimal places (such as with subnormal numbers), nothing to round...\n\t\tn < MIN_EXP_SUBNORMAL ||\n\n\t\t// If `|x|` is large enough, no decimals to round...\n\t\t( abs( x ) > MAX_INT && n <= 0 )\n\t) {\n\t\treturn x;\n\t}\n\t// The maximum absolute double is ~1.8e308. Accordingly, any possible positive finite `x` rounded to the nearest >=10^309 is infinity and any negative finite `x` is zero.\n\tif ( n > MAX_EXP ) {\n\t\tif ( x >= 0.0 ) {\n\t\t\treturn 0.0; // preserve the sign (same behavior as floor)\n\t\t}\n\t\treturn NINF;\n\t}\n\t// If we overflow, return `x`, as the number of digits to the right of the decimal is too small (i.e., `x` is too large / lacks sufficient fractional precision) for there to be any effect when rounding...\n\tif ( n < MIN_EXP ) {\n\t\ts = pow( 10.0, -(n + MAX_EXP) );\n\t\ty = (x*HUGE) * s; // order of operation matters!\n\t\tif ( isInfinite( y ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn ( floor(y)/HUGE ) / s;\n\t}\n\ts = pow( 10.0, -n );\n\ty = x * s;\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn floor( y ) / s;\n}\n\n\n// EXPORTS //\n\nexport default floorn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport max from './../../../../base/special/max';\nimport FLOAT64_BIGGEST from '@stdlib/constants/float64/max';\nimport FLOAT64_SMALLEST from '@stdlib/constants/float64/smallest-normal';\nimport EPS from '@stdlib/constants/float64/eps';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// VARIABLES //\n\nvar LARGE_THRESHOLD = FLOAT64_BIGGEST * 0.5;\nvar SMALL_THRESHOLD = FLOAT64_SMALLEST * ( 2.0 / EPS );\nvar RECIP_EPS_SQR = 2.0 / ( EPS * EPS );\n\n\n// MAIN //\n\n/**\n* Computes the inverse of a double-precision complex floating-point number.\n*\n* ## References\n*\n* - Baudin, Michael, and Robert L. Smith. 2012. \"A Robust Complex Division in Scilab.\" _arXiv_ abs/1210.4539 \\[cs.MS\\] (October): 1–25. .\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cinv( new Complex128( 2.0, 4.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns 0.1\n*\n* var im = imag( v );\n* // returns -0.2\n*/\nfunction cinv( z ) {\n\tvar ab;\n\tvar re;\n\tvar im;\n\tvar s;\n\tvar r;\n\tvar t;\n\n\tre = real( z );\n\tim = imag( z );\n\tab = max( abs(re), abs(im) );\n\ts = 1.0;\n\tif ( ab >= LARGE_THRESHOLD ) {\n\t\tre *= 0.5;\n\t\tim *= 0.5;\n\t\ts *= 0.5;\n\t} else if ( ab <= SMALL_THRESHOLD ) {\n\t\tre *= RECIP_EPS_SQR;\n\t\tim *= RECIP_EPS_SQR;\n\t\ts *= RECIP_EPS_SQR;\n\t}\n\tif ( abs( im ) <= abs( re ) ) {\n\t\tr = im / re;\n\t\tt = 1.0 / ( re + (im*r) );\n\t\tre = t;\n\t\tim = -r * t;\n\t} else {\n\t\tr = re / im;\n\t\tt = 1.0 / ( im + (re*r) );\n\t\tre = r * t;\n\t\tim = -t;\n\t}\n\tre *= s;\n\tim *= s;\n\treturn new Complex128( re, im );\n}\n\n\n// EXPORTS //\n\nexport default cinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// π / 180.0\nvar PI_DIV_180 = 1.7453292519943295e-2;\n\n\n// MAIN //\n\n/**\n* Converts an angle from degrees to radians.\n*\n* @param {number} x - angle in degrees\n* @returns {number} angle in radians\n*\n* @example\n* var r = deg2rad( 90.0 );\n* // returns ~1.571\n*\n* @example\n* var r = deg2rad( -45.0 );\n* // returns ~-0.785\n*\n* @example\n* var r = deg2rad( NaN );\n* // returns NaN\n*/\nfunction deg2rad( x ) {\n\treturn x * PI_DIV_180;\n}\n\n\n// EXPORTS //\n\nexport default deg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1985, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport exp from './../../../../base/special/exp';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic cosine of a double-precision floating-point number.\n*\n* ## Method\n*\n* ```tex\n* \\operatorname{cosh}(x) = \\frac{ \\exp(x) + \\exp(-x) }{2}\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:--------:|:--------:|:-------:|:-------:|\n* | DEC | +- 88 | 50000 | 4.0e-17 | 7.7e-18 |\n* | IEEE | +-MAXLOG | 30000 | 2.6e-16 | 5.7e-17 |\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic cosine\n*\n* @example\n* var v = cosh( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = cosh( 2.0 );\n* // returns ~3.762\n*\n* @example\n* var v = cosh( -2.0 );\n* // returns ~3.762\n*\n* @example\n* var v = cosh( NaN );\n* // returns NaN\n*/\nfunction cosh( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x < 0.0 ) {\n\t\tx = -x;\n\t}\n\tif ( x > 21.0 ) {\n\t\treturn exp( x ) / 2.0;\n\t}\n\treturn ( exp(x) + exp(-x) ) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default cosh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\nimport polyval from './polyval_p.js';\n\n\n// VARIABLES //\n\nvar PIO4 = 7.85398163397448309616e-1; // 4/π\n\n\n// MAIN //\n\n/**\n* Computes the cosine of a number minus one.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} cosine minus one\n*\n* @example\n* var v = cosm1( 0.0 );\n* // returns 0.0\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n*\n* var v = cosm1( PI/4.0 );\n* // returns ~-0.293\n*\n* @example\n* import PI from '@stdlib/constants/float64/pi';\n*\n* var v = cosm1( -PI/6.0 );\n* // returns ~-0.134\n*\n* @example\n* var v = cosm1( NaN );\n* // returns NaN\n*/\nfunction cosm1( x ) {\n\tvar x2;\n\tif ( x < -PIO4 || x > PIO4 ) {\n\t\treturn cos( x ) - 1.0;\n\t}\n\tx2 = x * x;\n\treturn ( -0.5*x2 ) + ( x2*x2*polyval( x2 ) );\n}\n\n\n// EXPORTS //\n\nexport default cosm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.041666666666666664;\n\t}\n\treturn 0.041666666666666664 + (x * (-0.0013888888888888872 + (x * (0.00002480158730157055 + (x * (-2.755731921499979e-7 + (x * (2.087675428708152e-9 + (x * (-1.147028484342536e-11 + (x * 4.737750796424621e-14))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/k_tan.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport polyvalOdd from './polyval_t_odd.js';\nimport polyvalEven from './polyval_t_even.js';\n\n\n// VARIABLES //\n\nvar PIO4 = 7.85398163397448278999e-01;\nvar PIO4LO = 3.06161699786838301793e-17;\nvar T0 = 3.33333333333334091986e-01; // 3FD55555, 55555563\n\n// Absolute value mask: 2147483647 => 0x7fffffff => 01111111111111111111111111111111\nvar HIGH_WORD_ABS_MASK = 0x7fffffff|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes the tangent on \\\\( \\approx\\[-\\pi/4, \\pi/4] \\\\) (except on -0), \\\\( \\pi/4 \\approx 0.7854 \\\\).\n*\n* ## Method\n*\n* - Since \\\\( \\tan(-x) = -\\tan(x) \\\\), we need only to consider positive \\\\( x \\\\).\n*\n* - Callers must return \\\\( \\tan(-0) = -0 \\\\) without calling here since our odd polynomial is not evaluated in a way that preserves \\\\( -0 \\\\). Callers may do the optimization \\\\( \\tan(x) \\approx x \\\\) for tiny \\\\( x \\\\).\n*\n* - \\\\( \\tan(x) \\\\) is approximated by a odd polynomial of degree 27 on \\\\( \\[0, 0.67434] \\\\)\n*\n* ```tex\n* \\tan(x) \\approx x + T_1 x^3 + \\ldots + T_{13} x^{27}\n* ```\n* where\n*\n* ```tex\n* \\left| \\frac{\\tan(x)}{x} - \\left( 1 + T_1 x^2 + T_2 x^4 + \\ldots + T_{13} x^{26} \\right) \\right| \\le 2^{-59.2}\n* ```\n*\n* - Note: \\\\( \\tan(x+y) = \\tan(x) + \\tan'(x) \\cdot y \\approx \\tan(x) + ( 1 + x \\cdot x ) \\cdot y \\\\). Therefore, for better accuracy in computing \\\\( \\tan(x+y) \\\\), let\n*\n* ```tex\n* r = x^3 \\cdot \\left( T_2+x^2 \\cdot (T_3+x^2 \\cdot (\\ldots+x^2 \\cdot (T_{12}+x^2 \\cdot T_{13}))) \\right)\n* ```\n*\n* then\n*\n* ```tex\n* \\tan(x+y) = x^3 + \\left( T_1 \\cdot x^2 + (x \\cdot (r+y)+y) \\right)\n* ```\n*\n* - For \\\\( x \\\\) in \\\\( \\[0.67434, \\pi/4] \\\\), let \\\\( y = \\pi/4 - x \\\\), then\n*\n* ```tex\n* \\tan(x) = \\tan\\left(\\tfrac{\\pi}{4}-y\\right) = \\frac{1-\\tan(y)}{1+\\tan(y)} \\\\\n* = 1 - 2 \\cdot \\left( \\tan(y) - \\tfrac{\\tan(y)^2}{1+\\tan(y)} \\right)\n* ```\n*\n* @param {number} x - input value (in radians, assumed to be bounded by ~π/4 in magnitude)\n* @param {number} y - tail of `x`\n* @param {integer} k - indicates whether tan (if k = 1) or -1/tan (if k = -1) is returned\n* @returns {number} tangent\n*\n* @example\n* var out = kernelTan( 3.141592653589793/4.0, 0.0, 1 );\n* // returns ~1.0\n*\n* @example\n* var out = kernelTan( 3.141592653589793/4.0, 0.0, -1 );\n* // returns ~-1.0\n*\n* @example\n* var out = kernelTan( 3.141592653589793/6.0, 0.0, 1 );\n* // returns ~0.577\n*\n* @example\n* var out = kernelTan( 0.664, 5.288e-17, 1 );\n* // returns ~0.783\n*\n* @example\n* var out = kernelTan( NaN, 0.0, 1 );\n* // returns NaN\n*\n* @example\n* var out = kernelTan( 3.0, NaN, 1 );\n* // returns NaN\n*\n* @example\n* var out = kernelTan( NaN, NaN, 1 );\n* // returns NaN\n*/\nfunction kernelTan( x, y, k ) {\n\tvar hx;\n\tvar ix;\n\tvar a;\n\tvar r;\n\tvar s;\n\tvar t;\n\tvar v;\n\tvar w;\n\tvar z;\n\n\thx = getHighWord( x );\n\n\t// High word of |x|:\n\tix = (hx & HIGH_WORD_ABS_MASK)|0; // asm type annotation\n\n\t// Case: |x| >= 0.6744\n\tif ( ix >= 0x3FE59428 ) {\n\t\tif ( x < 0 ) {\n\t\t\tx = -x;\n\t\t\ty = -y;\n\t\t}\n\t\tz = PIO4 - x;\n\t\tw = PIO4LO - y;\n\t\tx = z + w;\n\t\ty = 0.0;\n\t}\n\tz = x * x;\n\tw = z * z;\n\n\t// Break x^5*(T[1]+x^2*T[2]+...) into x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + x^5(x^2*(T[2]+x^4*T[4]+...+x^22*T[12]))...\n\tr = polyvalOdd( w );\n\tv = z * polyvalEven( w );\n\ts = z * x;\n\tr = y + (z * ((s * (r + v)) + y));\n\tr += T0 * s;\n\tw = x + r;\n\tif ( ix >= 0x3FE59428 ) {\n\t\tv = k;\n\t\treturn ( 1.0 - ( (hx >> 30) & 2 ) ) * ( v - (2.0 * (x - ((w * w / (w + v)) - r)) )); // eslint-disable-line max-len\n\t}\n\tif ( k === 1 ) {\n\t\treturn w;\n\t}\n\t// Compute -1/(x+r) accurately...\n\tz = setLowWord( w, 0 );\n\tv = r - (z - x); // z + v = r + x\n\ta = -1.0 / w; // a = -1/w\n\tt = setLowWord( a, 0 );\n\ts = 1.0 + (t * z);\n\treturn t + (a * (s + (t * v)));\n}\n\n\n// EXPORTS //\n\nexport default kernelTan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.13333333333320124;\n\t}\n\treturn 0.13333333333320124 + (x * (0.021869488294859542 + (x * (0.0035920791075913124 + (x * (0.0005880412408202641 + (x * (0.00007817944429395571 + (x * -0.000018558637485527546))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.05396825397622605;\n\t}\n\treturn 0.05396825397622605 + (x * (0.0088632398235993 + (x * (0.0014562094543252903 + (x * (0.0002464631348184699 + (x * (0.00007140724913826082 + (x * 0.00002590730518636337))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_tan.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport kernelTan from './../../../../base/special/kernel-tan';\nimport rempio2 from './../../../../base/special/rempio2';\nimport HIGH_WORD_ABS_MASK from '@stdlib/constants/float64/high-word-abs-mask';\nimport HIGH_WORD_EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask';\n\n\n// VARIABLES //\n\n// Scratch buffer:\nvar buffer = [ 0.0, 0.0 ]; // WARNING: not thread safe\n\n// High word for pi/4: 0x3fe921fb => 00111111111010010010000111111011\nvar HIGH_WORD_PIO4 = 0x3fe921fb|0; // asm type annotation\n\n// High word for a small value: 2^-27 = 7.450580596923828e-9 => high word => 0x3e400000 => 00111110010000000000000000000000\nvar HIGH_WORD_TWO_NEG_27 = 0x3e400000|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Evaluates the tangent of a number.\n*\n* ## Method\n*\n* - Let \\\\(S\\\\), \\\\(C\\\\), and \\\\(T\\\\) denote the \\\\(\\sin\\\\), \\\\(\\cos\\\\), and \\\\(\\tan\\\\), respectively, on \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\).\n*\n* - Reduce the argument \\\\(x\\\\) to \\\\(y1+y2 = x-k\\pi/2\\\\) in \\\\(\\[-\\pi/4, +\\pi/4\\]\\\\), and let \\\\(n = k \\mod 4\\\\).\n*\n* - We have\n*\n* | n | sin(x) | cos(x) | tan(x) |\n* | - | ------ | ------ | ------ |\n* | 0 | S | C | T |\n* | 1 | C | -S | -1/T |\n* | 2 | -S | -C | T |\n* | 3 | -C | S | -1/T |\n*\n* @param {number} x - input value (in radians)\n* @returns {number} tangent\n*\n* @example\n* var v = tan( 0.0 );\n* // returns ~0.0\n*\n* @example\n* var v = tan( -3.141592653589793/4.0 );\n* // returns ~-1.0\n*\n* @example\n* var v = tan( 3.141592653589793/4.0 );\n* // returns ~1.0\n*\n* @example\n* var v = tan( NaN );\n* // returns NaN\n*/\nfunction tan( x ) {\n\tvar ix;\n\tvar n;\n\n\tix = getHighWord( x );\n\tix &= HIGH_WORD_ABS_MASK;\n\n\t// Case: |x| ~< π/4\n\tif ( ix <= HIGH_WORD_PIO4 ) {\n\t\t// Case: |x| < 2**-27\n\t\tif ( ix < HIGH_WORD_TWO_NEG_27 ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn kernelTan( x, 0.0, 1 );\n\t}\n\t// Case: tan(Inf or NaN) is NaN\n\tif ( ix >= HIGH_WORD_EXPONENT_MASK ) {\n\t\treturn NaN;\n\t}\n\t// Argument reduction needed...\n\tn = rempio2( x, buffer );\n\treturn kernelTan( buffer[ 0 ], buffer[ 1 ], 1-((n&1)<<1) );\n}\n\n\n// EXPORTS //\n\nexport default tan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport tan from './../../../../base/special/tan';\n\n\n// MAIN //\n\n/**\n* Evaluates the cotangent of a number.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} cotangent\n*\n* @example\n* var v = cot( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = cot( 3.141592653589793/2.0 );\n* // returns ~0.0\n*\n* @example\n* var v = cot( -3.141592653589793/4.0 );\n* // returns ~-1.0\n*\n* @example\n* var v = cot( 3.141592653589793/4.0 );\n* // returns ~1.0\n*\n* @example\n* var v = cot( NaN );\n* // returns NaN\n*/\nfunction cot( x ) {\n\treturn 1.0 / tan( x );\n}\n\n\n// EXPORTS //\n\nexport default cot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport ratval from './rational_pq.js';\n\n\n// VARIABLES //\n\n// log(2**127)\nvar MAXLOG = 8.8029691931113054295988e+01;\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic tangent of a double-precision floating-point number.\n*\n* ## Method\n*\n* For \\\\( |x| < 0.625 \\\\), we use a rational function of the form (Cody and Waite)\n*\n* ```tex\n* x + x^3 \\frac{\\mathrm{P}(x)}{\\mathrm{Q}(x)}\n* ```\n*\n* Otherwise,\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{tanh}(x) &= \\frac{\\operatorname{sinh}(x)}{\\operatorname{cosh(x)}} \\\\\n* &= 1 - \\frac{2}{e^{2x} + 1}\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:------:|:--------:|:-------:|:-------:|\n* | DEC | -2,2 | 50000 | 3.3e-17 | 6.4e-18 |\n* | IEEE | -2,2 | 30000 | 2.5e-16 | 5.8e-17 |\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic tangent\n*\n* @example\n* var v = tanh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = tanh( 2.0 );\n* // returns ~0.964\n*\n* @example\n* var v = tanh( -2.0 );\n* // returns ~-0.964\n*\n* @example\n* var v = tanh( NaN );\n* // returns NaN\n*/\nfunction tanh( x ) {\n\tvar s;\n\tvar z;\n\tz = abs( x );\n\tif ( z > 0.5*MAXLOG ) {\n\t\treturn ( x < 0.0 ) ? -1.0 : 1.0;\n\t}\n\tif ( z >= 0.625 ) {\n\t\ts = exp( 2.0 * z );\n\t\tz = 1.0 - ( 2.0/(s+1.0) );\n\t\tif ( x < 0.0 ) {\n\t\t\tz = -z;\n\t\t}\n\t} else {\n\t\tif ( x === 0.0 ) {\n\t\t\treturn x; // Handle `+-0`\n\t\t}\n\t\ts = x * x;\n\t\tz = x + ( x*s*ratval( s ) );\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default tanh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.3333333333333332;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -1614.6876844170845 + (x * (-99.28772310019185 + (x * (-0.9643991794250523 + (x * 0.0))))); // eslint-disable-line max-len\n\t\ts2 = 4844.063053251255 + (x * (2235.4883906010045 + (x * (112.81167849163293 + (x * 1.0))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-0.9643991794250523 + (x * (-99.28772310019185 + (x * -1614.6876844170845))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (112.81167849163293 + (x * (2235.4883906010045 + (x * 4844.063053251255))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the coversed cosine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} coversed cosine\n*\n* @example\n* var v = covercos( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = covercos( 3.141592653589793/2.0 );\n* // returns 2.0\n*\n* @example\n* var v = covercos( -3.141592653589793/6.0 );\n* // returns 0.5\n*\n* @example\n* var v = covercos( NaN );\n* // returns NaN\n*/\nfunction covercos( x ) {\n\treturn 1.0 + sin( x );\n}\n\n\n// EXPORTS //\n\nexport default covercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the coversed sine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} coversed sine\n*\n* @example\n* var v = coversin( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = coversin( 3.141592653589793/2.0 );\n* // returns 0.0\n*\n* @example\n* var v = coversin( -3.141592653589793/6.0 );\n* // returns 1.5\n*\n* @example\n* var v = coversin( NaN );\n* // returns NaN\n*/\nfunction coversin( x ) {\n\treturn 1.0 - sin( x );\n}\n\n\n// EXPORTS //\n\nexport default coversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atan2 from './../../../../base/special/atan2';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Computes the argument of a double-precision complex floating-point number in radians.\n*\n* @param {Complex128} z - complex number\n* @returns {number} argument\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var phi = cphase( new Complex128( 5.0, 3.0 ) );\n* // returns ~0.5404\n*/\nfunction cphase( z ) {\n\treturn atan2( imag( z ), real( z ) );\n}\n\n\n// EXPORTS //\n\nexport default cphase;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cphase from './../../../../base/special/cphase';\nimport cabs from './../../../../base/special/cabs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value and the phase of a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} absolute value and phase (in radians)\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var o = cpolar( new Complex128( 5.0, 3.0 ), [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~5.83, ~0.5404 ]\n*/\nfunction cpolar( z, out, stride, offset ) {\n\tout[ offset ] = cabs( z );\n\tout[ offset+stride ] = cphase( z );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default cpolar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value and the phase of a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @returns {Array} absolute value and phase (in radians)\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var o = cpolar( new Complex128( 5.0, 3.0 ) );\n* // returns [ ~5.83, ~0.5404 ]\n*/\nfunction cpolar( z ) {\n\treturn assign( z, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default cpolar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the absolute value and the phase of a double-precision complex floating-point number.\n*\n* @module @stdlib/math/base/special/cpolar\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import cpolar from '@stdlib/math/base/special/cpolar';\n*\n* var o = cpolar( new Complex128( 5.0, 3.0 ) );\n* // returns [ ~5.83, ~0.5404 ]\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import Float64Array from '@stdlib/array/float64';\n* import cpolar from '@stdlib/math/base/special/cpolar';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = cpolar.assign( new Complex128( 5.0, 3.0 ), out, 1, 0 );\n* // returns [ ~5.83, ~0.5404 ]\n*\n* var bool = ( v === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport round from './../../../../base/special/round';\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP from '@stdlib/constants/float64/min-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\n\n\n// VARIABLES //\n\nvar MAX_INT = MAX_SAFE_INTEGER + 1;\nvar HUGE = 1.0e+308;\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point number to the nearest multiple of \\\\(10^n\\\\).\n*\n* ## Method\n*\n* 1. If \\\\(|x| <= 2^{53}\\\\) and \\\\(|n| <= 308\\\\), we can use the formula\n*\n* ```tex\n* \\operatorname{roundn}(x,n) = \\frac{\\operatorname{round}(x \\cdot 10^{-n})}{10^{-n}}\n* ```\n*\n* which shifts the decimal to the nearest multiple of \\\\(10^n\\\\), performs a standard \\\\(\\mathrm{round}\\\\) operation, and then shifts the decimal to its original position.\n*\n* \n*\n* If \\\\(x \\cdot 10^{-n}\\\\) overflows, \\\\(x\\\\) lacks a sufficient number of decimal digits to have any effect when rounding. Accordingly, the rounded value is \\\\(x\\\\).\n*\n* \n*\n* \n*\n* Note that rescaling \\\\(x\\\\) can result in unexpected behavior. For instance, the result of \\\\(\\operatorname{roundn}(0.2+0.1,-16)\\\\) is \\\\(0.3000000000000001\\\\) and not \\\\(0.3\\\\). While possibly unexpected, this is not a bug. The behavior stems from the fact that most decimal fractions cannot be exactly represented as floating-point numbers. And further, rescaling can lead to slightly different fractional values, which, in turn, affects the result of \\\\(\\mathrm{round}\\\\).\n*\n* \n*\n* 2. If \\\\(n > 308\\\\), we recognize that the maximum absolute double-precision floating-point number is \\\\(\\approx 1.8\\mbox{e}308\\\\) and, thus, the result of rounding any possible finite number \\\\(x\\\\) to the nearest \\\\(10^n\\\\) is \\\\(0.0\\\\). To ensure consistent behavior with \\\\(\\operatorname{round}(x)\\\\), the sign of \\\\(x\\\\) is preserved.\n*\n* 3. If \\\\(n < -324\\\\), \\\\(n\\\\) exceeds the maximum number of possible decimal places (such as with subnormal numbers), and, thus, the rounded value is \\\\(x\\\\).\n*\n* 4. If \\\\(x > 2^{53}\\\\), \\\\(x\\\\) is **always** an integer (i.e., \\\\(x\\\\) has no decimal digits). If \\\\(n <= 0\\\\), the rounded value is \\\\(x\\\\).\n*\n* 5. If \\\\(n < -308\\\\), we let \\\\(m = n + 308\\\\) and modify the above formula to avoid overflow.\n*\n* ```tex\n* \\operatorname{roundn}(x,n) = \\frac{\\biggl(\\frac{\\operatorname{round}( (x \\cdot 10^{308}) 10^{-m})}{10^{308}}\\biggr)}{10^{-m}}\n* ```\n*\n* If overflow occurs, the rounded value is \\\\(x\\\\).\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{roundn}(\\mathrm{NaN}, n) &= \\mathrm{NaN} \\\\\n* \\operatorname{roundn}(x, \\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{roundn}(x, \\pm\\infty) &= \\mathrm{NaN} \\\\\n* \\operatorname{roundn}(\\pm\\infty, n) &= \\pm\\infty \\\\\n* \\operatorname{roundn}(\\pm 0, n) &= \\pm 0\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* 1. Alternative algorithms:\n*\n* - Round by [casting][1] \\\\(x\\\\) to an exponential string.\n* - Native Python implementation [1][2] and [2][3].\n*\n* [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round\n* [2]: https://hg.python.org/releasing/2.7.9/file/tip/Objects/floatobject.c#l1082\n* [3]: https://hg.python.org/releasing/2.7.9/file/tip/Objects/floatobject.c#l1226\n*\n* @param {number} x - input value\n* @param {integer} n - integer power of `10`\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 2 decimal places:\n* var v = roundn( 3.141592653589793, -2 );\n* // returns 3.14\n*\n* @example\n* // If n = 0, `roundn` behaves like `round`:\n* var v = roundn( 3.141592653589793, 0 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest thousand:\n* var v = roundn( 12368.0, 3 );\n* // returns 12000.0\n*/\nfunction roundn( x, n ) {\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisInfinite( n )\n\t) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\t// Handle infinities...\n\t\tisInfinite( x ) ||\n\n\t\t// Handle +-0...\n\t\tx === 0.0 ||\n\n\t\t// If `n` exceeds the maximum number of feasible decimal places (such as with subnormal numbers), nothing to round...\n\t\tn < MIN_EXP_SUBNORMAL ||\n\n\t\t// If `|x|` is large enough, no decimals to round...\n\t\t( abs( x ) > MAX_INT && n <= 0 )\n\t) {\n\t\treturn x;\n\t}\n\t// The maximum absolute double is ~1.8e308. Accordingly, any possible finite `x` rounded to the nearest >=10^309 is 0.0.\n\tif ( n > MAX_EXP ) {\n\t\treturn 0.0 * x; // preserve the sign (same behavior as round)\n\t}\n\t// If we overflow, return `x`, as the number of digits to the right of the decimal is too small (i.e., `x` is too large / lacks sufficient fractional precision) for there to be any effect when rounding...\n\tif ( n < MIN_EXP ) {\n\t\ts = pow( 10.0, -(n + MAX_EXP) );\n\t\ty = (x*HUGE) * s; // order of operation matters!\n\t\tif ( isInfinite( y ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn ( round(y)/HUGE ) / s;\n\t}\n\ts = pow( 10.0, -n );\n\ty = x * s;\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn round( y ) / s;\n}\n\n\n// EXPORTS //\n\nexport default roundn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport LN2 from '@stdlib/constants/float64/ln-two';\nimport rateval from './rational_pq.js';\n\n\n// VARIABLES //\n\n// ln(2^1024)\nvar MAXLOG = 7.09782712893383996843e2;\n\n// ln(2^-1022)\nvar MINLOG = -7.08396418532264106224e2;\n\nvar POS_OVERFLOW = MAXLOG + LN2;\nvar NEG_OVERFLOW = MINLOG - LN2;\n\nvar LARGE = MAXLOG - LN2;\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic sine of a double-precision floating-point number.\n*\n* ## Method\n*\n* The range is partitioned into two segments. If \\\\( |x| \\le 1 \\\\), we use a rational function of the form\n*\n* ```tex\n* x + x^3 \\frac{\\mathrm{P}(x)}{\\mathrm{Q}(x)}\n* ```\n*\n* Otherwise, the calculation is\n*\n* ```tex\n* \\operatorname{sinh}(x) = \\frac{ e^x - e^{-x} }{2}.\n* ```\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:--------:|:--------:|:-------:|:-------:|\n* | DEC | +- 88 | 50000 | 4.0e-17 | 7.7e-18 |\n* | IEEE | +-MAXLOG | 30000 | 2.6e-16 | 5.7e-17 |\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic sine\n*\n* @example\n* var v = sinh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = sinh( 2.0 );\n* // returns ~3.627\n*\n* @example\n* var v = sinh( -2.0 );\n* // returns ~-3.627\n*\n* @example\n* var v = sinh( NaN );\n* // returns NaN\n*/\nfunction sinh( x ) {\n\tvar a;\n\tif ( x === 0.0 ) {\n\t\treturn x; // handles `+-0`\n\t}\n\tif ( x > POS_OVERFLOW || x < NEG_OVERFLOW ) {\n\t\treturn ( x > 0.0 ) ? PINF : NINF;\n\t}\n\ta = abs( x );\n\tif ( a > 1.0 ) {\n\t\tif ( a >= LARGE ) {\n\t\t\ta = exp( 0.5*a );\n\t\t\ta *= 0.5 * a;\n\t\t\tif ( x < 0.0 ) {\n\t\t\t\ta = -a;\n\t\t\t}\n\t\t\treturn a;\n\t\t}\n\t\ta = exp( a );\n\t\ta = (0.5*a) - (0.5/a);\n\t\tif ( x < 0.0 ) {\n\t\t\ta = -a;\n\t\t}\n\t\treturn a;\n\t}\n\ta *= a;\n\treturn x + ( x*a*rateval( a ) );\n}\n\n\n// EXPORTS //\n\nexport default sinh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.16666666666666666;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -351754.9648081514 + (x * (-11561.443576500522 + (x * (-163.72585752598383 + (x * -0.789474443963537))))); // eslint-disable-line max-len\n\t\ts2 = -2110529.7888489086 + (x * (36157.827983443196 + (x * (-277.7110814206028 + (x * 1.0))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.789474443963537 + (x * (-163.72585752598383 + (x * (-11561.443576500522 + (x * -351754.9648081514))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-277.7110814206028 + (x * (36157.827983443196 + (x * -2110529.7888489086))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// VARIABLES //\n\n// π / 180.0\nvar PI_DIV_180 = float64ToFloat32( 1.7453292519943295e-2 );\n\n\n// MAIN //\n\n/**\n* Converts an angle from degrees to radians (single-precision).\n*\n* @param {number} x - angle in degrees\n* @returns {number} angle in radians\n*\n* @example\n* var r = deg2radf( 90.0 );\n* // returns ~1.571\n*\n* @example\n* var r = deg2radf( -45.0 );\n* // returns ~-0.785\n*\n* @example\n* var r = deg2radf( NaN );\n* // returns NaN\n*/\nfunction deg2radf( x ) {\n\treturn float64ToFloat32( float64ToFloat32( x ) * PI_DIV_180 );\n}\n\n\n// EXPORTS //\n\nexport default deg2radf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rateval from './rational_pq.js';\n\n\n// VARIABLES //\n\nvar root1 = 1569415565.0 / 1073741824.0;\nvar root2 = ( 381566830.0 / 1073741824.0 ) / 1073741824.0;\nvar root3 = 0.9016312093258695918615325266959189453125e-19;\nvar Y = 0.99558162689208984;\n\n\n// MAIN //\n\n/**\n* Evaluates the digamma function over interval `[1,2]`.\n*\n* @private\n* @param {number} x - input value\n* @returns {number} function value\n*/\nfunction digamma( x ) {\n\tvar g;\n\tvar r;\n\tg = x - root1;\n\tg -= root2;\n\tg -= root3;\n\tr = rateval( x-1.0 );\n\treturn (g*Y) + (g*r);\n}\n\n\n// EXPORTS //\n\nexport default digamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/digamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport floor from './../../../../base/special/floor';\nimport tan from './../../../../base/special/tan';\nimport PI from '@stdlib/constants/float64/pi';\nimport asymptoticApprox from './asymptotic_expansion.js';\nimport rationalApprox from './rational_approximation.js';\n\n\n// VARIABLES //\n\nvar MIN_SAFE_ASYMPTOTIC = 10.0; // BIG!\n\n\n// MAIN //\n\n/**\n* Evaluates the digamma function.\n*\n* ## Method\n*\n* 1. For \\\\(x < 0\\\\), we use the reflection formula\n*\n* ```tex\n* \\psi(1-x) = \\psi(x) + \\frac{\\pi}{\\tan(\\pi x)}\n* ```\n*\n* to make \\\\(x\\\\) positive.\n*\n* 2. For \\\\(x \\in \\[0,1]\\\\), we use the recurrence relation\n*\n* ```tex\n* \\psi(x) = \\psi(x+1) - \\frac{1}{x}\n* ```\n*\n* to shift the evaluation range to \\\\(\\[1,2]\\\\).\n*\n* 3. For \\\\(x \\in \\[1,2]\\\\), we use a rational approximation of the form\n*\n* ```tex\n* \\psi(x) = (x - \\mathrm{root})(Y + \\operatorname{R}(x-1))\n* ```\n*\n* where \\\\(\\mathrm{root}\\\\) is the location of the positive root of \\\\(\\psi\\\\), \\\\(Y\\\\) is a constant, and \\\\(R\\\\) is optimized for low absolute error compared to \\\\(Y\\\\).\n*\n* \n*\n* Note that, since \\\\(\\mathrm{root}\\\\) is irrational, we need twice as many digits in \\\\(\\mathrm{root}\\\\) as in \\\\(x\\\\) in order to avoid cancellation error during subtraction, assuming \\\\(x\\\\) has an exact value. This means that, even if \\\\(x\\\\) is rounded to the next representable value, the result of \\\\(\\psi(x)\\\\) will not be zero.\n*\n* \n*\n* \n*\n* This approach gives 17-digit precision.\n*\n* \n*\n* 4. For \\\\(x \\in \\[2,\\mathrm{BIG}]\\\\), we use the recurrence relation\n*\n* ```tex\n* \\psi(x+1) = \\psi(x) + \\frac{1}{x}\n* ```\n*\n* to shift the evaluation range to \\\\(\\[1,2]\\\\).\n*\n* 5. For \\\\(x > \\mathrm{BIG}\\\\), we use the asymptotic expression\n*\n* ```tex\n* \\psi(x) = \\ln(x) + \\frac{1}{2x} - \\biggl( \\frac{B_{21}}{2x^2} + \\frac{B_{22}}{4x^4} + \\frac{B_{23}}{6x^6} + \\ldots \\biggr)\n* ```\n*\n* This expansion, however, is divergent after a few terms. The number of terms depends on \\\\(x\\\\). Accordingly, we must choose a value of \\\\(\\mathrm{BIG}\\\\) which allows us to truncate the series at a term that is too small to have an effect on the result. Setting \\\\(\\mathrm{BIG} = 10\\\\), allows us to truncate the series early and evaluate as \\\\(1/x^2\\\\).\n*\n* \n*\n* This approach gives 17-digit precision for \\\\(x \\geq 10\\\\).\n*\n* \n*\n* ## Notes\n*\n* - Maximum deviation found: \\\\(1.466\\\\mbox{e-}18\\\\)\n* - Max error found: \\\\(2.452\\mbox{e-}17\\\\) (double precision)\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = digamma( -2.5 );\n* // returns ~1.103\n*\n* @example\n* var v = digamma( 1.0 );\n* // returns ~-0.577\n*\n* @example\n* var v = digamma( 10.0 );\n* // returns ~2.252\n*\n* @example\n* var v = digamma( NaN );\n* // returns NaN\n*\n* @example\n* var v = digamma( -1.0 );\n* // returns NaN\n*/\nfunction digamma( x ) {\n\tvar rem;\n\tvar tmp;\n\tif ( isnan( x ) || x === 0.0 ) {\n\t\treturn NaN;\n\t}\n\t// If `x` is negative, use reflection...\n\tif ( x <= -1.0 ) {\n\t\t// Reflect:\n\t\tx = 1.0 - x;\n\n\t\t// Argument reduction for tan:\n\t\trem = x - floor(x);\n\n\t\t// Shift to negative if > 0.5:\n\t\tif ( rem > 0.5 ) {\n\t\t\trem -= 1.0;\n\t\t}\n\t\t// Check for evaluation at a negative pole:\n\t\tif ( rem === 0.0 ) {\n\t\t\treturn NaN;\n\t\t}\n\t\ttmp = PI / tan( PI * rem );\n\t} else {\n\t\ttmp = 0.0;\n\t}\n\t// If we're above the lower-limit for the asymptotic expansion, then use it...\n\tif ( x >= MIN_SAFE_ASYMPTOTIC ) {\n\t\ttmp += asymptoticApprox( x );\n\t\treturn tmp;\n\t}\n\t// If x > 2, reduce to the interval [1,2]...\n\twhile ( x > 2.0 ) {\n\t\tx -= 1.0;\n\t\ttmp += 1.0/x;\n\t}\n\t// If x < 1, use recurrence to shift to > 1..\n\twhile ( x < 1.0 ) {\n\t\ttmp -= 1.0/x;\n\t\tx += 1.0;\n\t}\n\ttmp += rationalApprox( x );\n\treturn tmp;\n}\n\n\n// EXPORTS //\n\nexport default digamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_53_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\nimport polyval from './polyval_p.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the digamma function via asymptotic expansion.\n*\n* @private\n* @param {number} x - input value\n* @returns {number} function value\n*/\nfunction digamma( x ) {\n\tvar y;\n\tvar z;\n\tx -= 1.0;\n\ty = ln(x) + ( 1.0 / (2.0*x) );\n\tz = 1.0 / (x*x);\n\treturn y - ( z*polyval( z ) );\n}\n\n\n// EXPORTS //\n\nexport default digamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.08333333333333333;\n\t}\n\treturn 0.08333333333333333 + (x * (-0.008333333333333333 + (x * (0.003968253968253968 + (x * (-0.004166666666666667 + (x * (0.007575757575757576 + (x * (-0.021092796092796094 + (x * (0.08333333333333333 + (x * -0.4432598039215686))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.25479851061131553;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.25479851061131553 + (x * (-0.3255503118680449 + (x * (-0.6503185377089651 + (x * (-0.28919126444774784 + (x * (-0.04525132144873906 + (x * (-0.002071332116774595 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (2.076711702373047 + (x * (1.4606242909763516 + (x * (0.43593529692665967 + (x * (0.054151797245674226 + (x * (0.0021284987017821146 + (x * -5.578984132167551e-7))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-0.002071332116774595 + (x * (-0.04525132144873906 + (x * (-0.28919126444774784 + (x * (-0.6503185377089651 + (x * (-0.3255503118680449 + (x * 0.25479851061131553))))))))))); // eslint-disable-line max-len\n\t\ts2 = -5.578984132167551e-7 + (x * (0.0021284987017821146 + (x * (0.054151797245674226 + (x * (0.43593529692665967 + (x * (1.4606242909763516 + (x * (2.076711702373047 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Evaluates the Dirac delta function.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = diracDelta( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = diracDelta( 3.14 );\n* // returns 0.0\n*\n* @example\n* var v = diracDelta( NaN );\n* // returns NaN\n*/\nfunction diracDelta( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn PINF;\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default diracDelta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_60_0/boost/math/special_functions/zeta.hpp}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport floor from './../../../../base/special/floor';\nimport gamma from './../../../../base/special/gamma';\nimport gammaln from './../../../../base/special/gammaln';\nimport sinpi from './../../../../base/special/sinpi';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport TWO_PI from '@stdlib/constants/float64/two-pi';\nimport SQRT_EPSILON from '@stdlib/constants/float64/sqrt-eps';\nimport LN_SQRT_TWO_PI from '@stdlib/constants/float64/ln-sqrt-two-pi';\nimport ODD_POSITIVE_INTEGERS from './odd_positive_integers.json';\nimport EVEN_NONNEGATIVE_INTEGERS from './even_nonnegative_integers.json';\nimport BERNOULLI from './bernoulli.json';\nimport rateval1 from './rational_p1q1.js';\nimport rateval2 from './rational_p2q2.js';\nimport rateval3 from './rational_p3q3.js';\nimport rateval4 from './rational_p4q4.js';\nimport rateval5 from './rational_p5q5.js';\nimport rateval6 from './rational_p6q6.js';\n\n\n// VARIABLES //\n\nvar MAX_BERNOULLI_2N = 129;\nvar MAX_FACTORIAL = 170; // TODO: consider making external constant\nvar MAX_LN = 709; // TODO: consider making external constant\nvar Y1 = 1.2433929443359375;\nvar Y3 = 0.6986598968505859375;\n\n\n// MAIN //\n\n/**\n* Evaluates the Riemann zeta function.\n*\n* ## Method\n*\n* 1. First, we use the reflection formula\n*\n* ```tex\n* \\zeta(1-s) = 2 \\sin\\biggl(\\frac{\\pi(1-s)}{2}\\biggr)(2\\pi^{-s})\\Gamma(s)\\zeta(s)\n* ```\n*\n* to make \\\\(s\\\\) positive.\n*\n* 2. For \\\\(s \\in (0,1)\\\\), we use the approximation\n*\n* ```tex\n* \\zeta(s) = \\frac{C + \\operatorname{R}(1-s) - s}{1-s}\n* ```\n*\n* with rational approximation \\\\(\\operatorname{R}(1-z)\\\\) and constant \\\\(C\\\\).\n*\n* 3. For \\\\(s \\in (1,4)\\\\), we use the approximation\n*\n* ```tex\n* \\zeta(s) = C + \\operatorname{R}(s-n) + \\frac{1}{s-1}\n* ```\n*\n* with rational approximation \\\\(\\operatorname{R}(z-n)\\\\), constant \\\\(C\\\\), and integer \\\\(n\\\\).\n*\n* 4. For \\\\(s > 4\\\\), we use the approximation\n*\n* ```tex\n* \\zeta(s) = 1 + e^{\\operatorname{R}(z-n)}\n* ```\n*\n* with rational approximation \\\\(\\operatorname{R}(z-n)\\\\) and integer \\\\(n\\\\).\n*\n* 5. For negative odd integers, we use the closed form\n*\n* ```tex\n* \\zeta(-n) = \\frac{(-1)^n}{n+1} B_{n+1}\n* ```\n*\n* where \\\\(B_{n+1}\\\\) is a Bernoulli number.\n*\n* 6. For negative even integers, we use the closed form\n*\n* ```tex\n* \\zeta(-2n) = 0\n* ```\n*\n* 7. For nonnegative even integers, we could use the closed form\n*\n* ```tex\n* \\zeta(2n) = \\frac{(-1)^{n-1}2^{2n-1}\\pi^{2n}}{(2n)!} B_{2n}\n* ```\n*\n* where \\\\(B_{2n}\\\\) is a Bernoulli number. However, to speed computation, we use precomputed values (Wolfram Alpha).\n*\n* 8. For positive negative integers, we use precomputed values (Wolfram Alpha), as these values are useful for certain infinite series calculations.\n*\n* ## Notes\n*\n* - \\\\(\\[\\approx 1.5\\mbox{e-}8, 1)\\\\)\n*\n* - max deviation: \\\\(2.020\\mbox{e-}18\\\\)\n* - expected error: \\\\(-2.020\\mbox{e-}18\\\\)\n* - max error found (double): \\\\(3.994987\\mbox{e-}17\\\\)\n*\n* - \\\\(\\[1,2\\]\\\\)\n*\n* - max deviation: \\\\(9.007\\mbox{e-}20\\\\)\n* - expected error: \\\\(9.007\\mbox{e-}20\\\\)\n*\n* - \\\\((2,4\\]\\\\)\n*\n* - max deviation: \\\\(5.946\\mbox{e-}22\\\\)\n* - expected error: \\\\(-5.946\\mbox{e-}22\\\\)\n*\n* - \\\\((4,7\\]\\\\)\n*\n* - max deviation: \\\\(2.955\\mbox{e-}17\\\\)\n* - expected error: \\\\(2.955\\mbox{e-}17\\\\)\n* - max error found (double): \\\\(2.009135\\mbox{e-}16\\\\)\n*\n* - \\\\((7,15)\\\\)\n*\n* - max deviation: \\\\(7.117\\mbox{e-}16\\\\)\n* - expected error: \\\\(7.117\\mbox{e-}16\\\\)\n* - max error found (double): \\\\(9.387771\\mbox{e-}16\\\\)\n*\n* - \\\\(\\[15,36)\\\\)\n*\n* - max error (in interpolated form): \\\\(1.668\\mbox{e-}17\\\\)\n* - max error found (long double): \\\\(1.669714\\mbox{e-}17\\\\)\n*\n* @param {number} s - input value\n* @returns {number} function value\n*\n* @example\n* var v = zeta( 1.1 );\n* // returns ~10.584\n*\n* @example\n* var v = zeta( -4.0 );\n* // returns 0.0\n*\n* @example\n* var v = zeta( 70.0 );\n* // returns 1.0\n*\n* @example\n* var v = zeta( 0.5 );\n* // returns ~-1.46\n*\n* @example\n* var v = zeta( 1.0 ); // pole\n* // returns NaN\n*\n* @example\n* var v = zeta( NaN );\n* // returns NaN\n*/\nfunction zeta( s ) {\n\tvar tmp;\n\tvar sc;\n\tvar as;\n\tvar is;\n\tvar r;\n\tvar n;\n\n\t// Check for `NaN`:\n\tif ( isnan( s ) ) {\n\t\treturn NaN;\n\t}\n\t// Check for a pole:\n\tif ( s === 1.0 ) {\n\t\treturn NaN;\n\t}\n\t// Check for large value:\n\tif ( s >= 56.0 ) {\n\t\treturn 1.0;\n\t}\n\t// Check for a closed form (integers):\n\tif ( isInteger( s ) ) {\n\t\t// Cast `s` to a 32-bit signed integer:\n\t\tis = s|0; // asm type annotation\n\n\t\t// Check that `s` does not exceed MAX_INT32:\n\t\tif ( is === s ) {\n\t\t\tif ( is < 0 ) {\n\t\t\t\tas = (-is)|0; // asm type annotation\n\n\t\t\t\t// Check if even negative integer:\n\t\t\t\tif ( (as&1) === 0 ) {\n\t\t\t\t\treturn 0.0;\n\t\t\t\t}\n\t\t\t\tn = ( (as+1) / 2 )|0; // asm type annotation\n\n\t\t\t\t// Check if less than max Bernoulli number:\n\t\t\t\tif ( n <= MAX_BERNOULLI_2N ) {\n\t\t\t\t\treturn -BERNOULLI[ n ] / (as+1.0);\n\t\t\t\t}\n\t\t\t\t// Fall through...\n\t\t\t}\n\t\t\t// Check if even nonnegative integer:\n\t\t\telse if ( (is&1) === 0 ) {\n\t\t\t\treturn EVEN_NONNEGATIVE_INTEGERS[ is/2 ];\n\t\t\t}\n\t\t\t// Must be a odd positive integer:\n\t\t\telse {\n\t\t\t\treturn ODD_POSITIVE_INTEGERS[ (is-3)/2 ];\n\t\t\t}\n\t\t}\n\t\t// Fall through...\n\t}\n\tif ( abs(s) < SQRT_EPSILON ) {\n\t\treturn -0.5 - (LN_SQRT_TWO_PI * s);\n\t}\n\tsc = 1.0 - s;\n\tif ( s < 0.0 ) {\n\t\t// Check if even negative integer:\n\t\tif ( floor(s/2.0) === s/2.0 ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\t// Swap `s` and `sc`:\n\t\ttmp = s;\n\t\ts = sc;\n\t\tsc = tmp;\n\n\t\t// Determine if computation will overflow:\n\t\tif ( s > MAX_FACTORIAL ) {\n\t\t\ttmp = sinpi( 0.5*sc ) * 2.0 * zeta( s );\n\t\t\tr = gammaln( s );\n\t\t\tr -= s * ln( TWO_PI );\n\t\t\tif ( r > MAX_LN ) {\n\t\t\t\treturn ( tmp < 0.0 ) ? NINF : PINF;\n\t\t\t}\n\t\t\treturn tmp * exp( r );\n\t\t}\n\t\treturn sinpi( 0.5*sc ) * 2.0 * pow( TWO_PI, -s ) * gamma( s ) * zeta( s ); // eslint-disable-line max-len\n\t}\n\tif ( s < 1.0 ) {\n\t\ttmp = rateval1( sc );\n\t\ttmp -= Y1;\n\t\ttmp += sc;\n\t\ttmp /= sc;\n\t\treturn tmp;\n\t}\n\tif ( s <= 2.0 ) {\n\t\tsc = -sc;\n\t\ttmp = 1.0 / sc;\n\t\treturn tmp + rateval2( sc );\n\t}\n\tif ( s <= 4.0 ) {\n\t\ttmp = Y3 + ( 1.0 / (-sc) );\n\t\treturn tmp + rateval3( s-2.0 );\n\t}\n\tif ( s <= 7.0 ) {\n\t\ttmp = rateval4( s-4.0 );\n\t\treturn 1.0 + exp( tmp );\n\t}\n\tif ( s < 15.0 ) {\n\t\ttmp = rateval5( s-7.0 );\n\t\treturn 1.0 + exp( tmp );\n\t}\n\tif ( s < 36.0 ) {\n\t\ttmp = rateval6( s-15.0 );\n\t\treturn 1.0 + exp( tmp );\n\t}\n\t// s < 56\n\treturn 1.0 + pow( 2.0, -s );\n}\n\n\n// EXPORTS //\n\nexport default zeta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.2433929443359375;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.2433929443359375 + (x * (-0.4909247051635357 + (x * (0.055761621477604675 + (x * (-0.003209124988790859 + (x * (0.0004515345286457964 + (x * -0.000009332412703570615))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-0.27996033431034445 + (x * (0.04196762233099861 + (x * (-0.00413421406552171 + (x * (0.00024978985622317937 + (x * -0.000010185578841856403))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -0.000009332412703570615 + (x * (0.0004515345286457964 + (x * (-0.003209124988790859 + (x * (0.055761621477604675 + (x * (-0.4909247051635357 + (x * 0.2433929443359375))))))))); // eslint-disable-line max-len\n\t\ts2 = -0.000010185578841856403 + (x * (0.00024978985622317937 + (x * (-0.00413421406552171 + (x * (0.04196762233099861 + (x * (-0.27996033431034445 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.5772156649015329;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.5772156649015329 + (x * (0.24321064694010716 + (x * (0.04173646739882165 + (x * (0.003902520870728433 + (x * (0.0002496063671518772 + (x * 0.00001101084409767329))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.29520127712663174 + (x * (0.043460910607305496 + (x * (0.004349305820858264 + (x * (0.0002557842261404885 + (x * 0.000010991819782396113))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.00001101084409767329 + (x * (0.0002496063671518772 + (x * (0.003902520870728433 + (x * (0.04173646739882165 + (x * (0.24321064694010716 + (x * 0.5772156649015329))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.000010991819782396113 + (x * (0.0002557842261404885 + (x * (0.004349305820858264 + (x * (0.043460910607305496 + (x * (0.29520127712663174 + (x * 1.0))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.053725830002359504;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.053725830002359504 + (x * (0.04451634732923656 + (x * (0.012867767353451996 + (x * (0.0009754177045739176 + (x * (0.00007698751015736541 + (x * (0.000003280325100003831 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.3338319455303405 + (x * (0.048779843129140764 + (x * (0.0047903970857355845 + (x * (0.00027077670395633634 + (x * (0.000010695186753205734 + (x * 2.3627662397497864e-8))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.000003280325100003831 + (x * (0.00007698751015736541 + (x * (0.0009754177045739176 + (x * (0.012867767353451996 + (x * (0.04451634732923656 + (x * -0.053725830002359504))))))))))); // eslint-disable-line max-len\n\t\ts2 = 2.3627662397497864e-8 + (x * (0.000010695186753205734 + (x * (0.00027077670395633634 + (x * (0.0047903970857355845 + (x * (0.048779843129140764 + (x * (0.3338319455303405 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -2.497101906022594;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -2.497101906022594 + (x * (-2.600133018094757 + (x * (-0.9392604353771099 + (x * (-0.13844861799574154 + (x * (-0.007017212405498024 + (x * (-0.000022925731059489392 + (x * (0.0 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.7060390259377451 + (x * (0.15739599649558628 + (x * (0.010611795097684508 + (x * (-0.000036910273311764616 + (x * (0.0000049340956392759 + (x * (-2.3405548702528722e-7 + (x * (7.188337293654598e-9 + (x * -1.1292001134749475e-10))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0 + (x * (0.0 + (x * (-0.000022925731059489392 + (x * (-0.007017212405498024 + (x * (-0.13844861799574154 + (x * (-0.9392604353771099 + (x * (-2.600133018094757 + (x * -2.497101906022594))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -1.1292001134749475e-10 + (x * (7.188337293654598e-9 + (x * (-2.3405548702528722e-7 + (x * (0.0000049340956392759 + (x * (-0.000036910273311764616 + (x * (0.010611795097684508 + (x * (0.15739599649558628 + (x * (0.7060390259377451 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -4.785580284951356;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -4.785580284951356 + (x * (-1.8919736488197254 + (x * (-0.21140713487441282 + (x * (-0.0001892047582600767 + (x * (0.0011514092388917874 + (x * (0.00006399492042131645 + (x * (0.000001393489324453249 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.24434533737818856 + (x * (0.008733707544922887 + (x * (-0.0011759276533443448 + (x * (-0.00007437436828999331 + (x * (-0.0000021750464515767985 + (x * (4.710012640030765e-9 + (x * (-8.333784406253855e-11 + (x * 6.998415452048457e-13))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0 + (x * (0.000001393489324453249 + (x * (0.00006399492042131645 + (x * (0.0011514092388917874 + (x * (-0.0001892047582600767 + (x * (-0.21140713487441282 + (x * (-1.8919736488197254 + (x * -4.785580284951356))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 6.998415452048457e-13 + (x * (-8.333784406253855e-11 + (x * (4.710012640030765e-9 + (x * (-0.0000021750464515767985 + (x * (-0.00007437436828999331 + (x * (-0.0011759276533443448 + (x * (0.008733707544922887 + (x * (0.24434533737818856 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function, i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -10.39489505733089;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -10.39489505733089 + (x * (-2.858272196711067 + (x * (-0.34772826653924577 + (x * (-0.025115606465534634 + (x * (-0.001194591734169687 + (x * (-0.00003825293235079675 + (x * (-7.855236337967234e-7 + (x * -8.214657090954655e-9))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.2081963335726719 + (x * (0.019568765731720502 + (x * (0.0011107963810248593 + (x * (0.000040850774626603926 + (x * (9.555611230656935e-7 + (x * (1.185071534740229e-8 + (x * 2.226094836273526e-15))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -8.214657090954655e-9 + (x * (-7.855236337967234e-7 + (x * (-0.00003825293235079675 + (x * (-0.001194591734169687 + (x * (-0.025115606465534634 + (x * (-0.34772826653924577 + (x * (-2.858272196711067 + (x * -10.39489505733089))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 2.226094836273526e-15 + (x * (1.185071534740229e-8 + (x * (9.555611230656935e-7 + (x * (0.000040850774626603926 + (x * (0.0011107963810248593 + (x * (0.019568765731720502 + (x * (0.2081963335726719 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport powm1 from './../../../../base/special/powm1';\nimport zeta from './../../../../base/special/riemann-zeta';\nimport LN2 from '@stdlib/constants/float64/ln-two';\n\n\n// MAIN //\n\n/**\n* Evaluates the Dirichlet eta function.\n*\n* @param {number} s - input value\n* @returns {number} function value\n*\n* @example\n* var v = eta( 0.0 );\n* // returns 0.5\n*\n* @example\n* var v = eta( -1.0 );\n* // returns 0.25\n*\n* @example\n* var v = eta( 1.0 ); // => ln(2)\n* // returns ~0.6931\n*\n* @example\n* var v = eta( 3.14 );\n* // returns ~0.9096\n*\n* @example\n* var v = eta( NaN );\n* // returns NaN\n*/\nfunction eta( s ) {\n\tif ( isnan( s ) ) {\n\t\treturn NaN;\n\t}\n\tif ( s === 1.0 ) {\n\t\t// Alternating harmonic series...\n\t\treturn LN2;\n\t}\n\treturn -powm1( 2.0, 1.0-s ) * zeta( s );\n}\n\n\n// EXPORTS //\n\nexport default eta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original Julia code and copyright notice are from the [Julia library]{@link https://github.com/JuliaMath/SpecialFunctions.jl/blob/master/src/ellip.jl}. The implementation has been modified for JavaScript.\n*\n* ```text\n* The MIT License (MIT)\n*\n* Copyright (c) 2017 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and others:\n*\n* https://github.com/JuliaMath/SpecialFunctions.jl/graphs/contributors\n*\n* Permission is hereby granted, free of charge, to any person obtaining a copy\n* of this software and associated documentation files (the \"Software\"), to deal\n* in the Software without restriction, including without limitation the rights\n* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the Software is\n* furnished to do so, subject to the following conditions:\n*\n* The above copyright notice and this permission notice shall be included in all\n* copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n* SOFTWARE.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport ln from './../../../../base/special/ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport poly1 from './poly_p1.js';\nimport poly2 from './poly_p2.js';\nimport poly3 from './poly_p3.js';\nimport poly4 from './poly_p4.js';\nimport poly5 from './poly_p5.js';\nimport poly6 from './poly_p6.js';\nimport poly7 from './poly_p7.js';\nimport poly8 from './poly_p8.js';\nimport poly9 from './poly_p9.js';\nimport poly10 from './poly_p10.js';\nimport poly11 from './poly_p11.js';\nimport poly12 from './poly_p12.js';\n\n\n// VARIABLES //\n\nvar ONE_DIV_PI = 0.3183098861837907;\n\n\n// MAIN //\n\n/**\n* Computes the complete elliptic integral of the first kind.\n*\n* ## Method\n*\n* - The function computes the complete elliptic integral of the first kind in terms of parameter \\\\( m \\\\), instead of the elliptic modulus \\\\( k \\\\).\n*\n* ```tex\n* K(m) = \\int_0^{\\pi/2} \\frac{1}{\\sqrt{1 - m sin^2\\theta}} d\\theta\n* ```\n*\n* - The function uses a piecewise approximation polynomial as given in Fukushima (2009).\n*\n* - For \\\\( m < 0 \\\\), the implementation follows Fukushima (2015). Namely, we use Equation 17.4.17 from the _Handbook of Mathematical Functions_ (Abramowitz and Stegun) to compute the function for \\\\( m < 0 \\\\) in terms of the piecewise polynomial representation of \\\\( m > 0 )).\n*\n* ```tex\n* F(\\phi|-m) = (1+m)^(-1/2) K(m/(1+m)) - (1+m)^(-1/2) F(\\pi/2-\\phi|m/(1+m))\n* ```\n*\n* Since \\\\( K(m) \\\\) is equivalent to \\\\( F(\\phi|m) \\\\), the above reduces to\n*\n* ```tex\n* F(\\phi|-m) = (1+m)^(-1/2) K(m/(1+m))\n* ```\n*\n* ## References\n*\n* - Fukushima, Toshio. 2009. \"Fast computation of complete elliptic integrals and Jacobian elliptic functions.\" _Celestial Mechanics and Dynamical Astronomy_ 105 (4): 305. doi:[10.1007/s10569-009-9228-z](https://doi.org/10.1007/s10569-009-9228-z).\n* - Fukushima, Toshio. 2015. \"Precise and fast computation of complete elliptic integrals by piecewise minimax rational function approximation.\" _Journal of Computational and Applied Mathematics_ 282 (July): 71–76. doi:[10.1016/j.cam.2014.12.038](https://doi.org/10.1016/j.cam.2014.12.038).\n*\n* @param {number} m - input value\n* @returns {number} evaluated elliptic integral\n*\n* @example\n* var v = ellipk( 0.5 );\n* // returns ~1.854\n*\n* v = ellipk( 2.0 );\n* // returns NaN\n*\n* v = ellipk( -1.0 );\n* // returns ~1.311\n*\n* v = ellipk( Infinity );\n* // returns NaN\n*\n* v = ellipk( -Infinity );\n* // returns NaN\n*\n* v = ellipk( NaN );\n* // returns NaN\n*/\nfunction ellipk( m ) {\n\tvar FLG;\n\tvar kdm;\n\tvar td;\n\tvar qd;\n\tvar t;\n\tvar x;\n\n\tx = m;\n\tif ( m < 0.0 ) {\n\t\tx = m / ( m - 1.0 );\n\t\tFLG = true;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn HALF_PI;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn PINF;\n\t}\n\tif ( x > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x < 0.1 ) {\n\t\tt = poly1( x - 0.05 );\n\t} else if ( x < 0.2 ) {\n\t\tt = poly2( x - 0.15 );\n\t} else if ( x < 0.3 ) {\n\t\tt = poly3( x - 0.25 );\n\t} else if ( x < 0.4 ) {\n\t\tt = poly4( x - 0.35 );\n\t} else if ( x < 0.5 ) {\n\t\tt = poly5( x - 0.45 );\n\t} else if ( x < 0.6 ) {\n\t\tt = poly6( x - 0.55 );\n\t} else if ( x < 0.7 ) {\n\t\tt = poly7( x - 0.65 );\n\t} else if ( x < 0.8 ) {\n\t\tt = poly8( x - 0.75 );\n\t} else if ( x < 0.85 ) {\n\t\tt = poly9( x - 0.825 );\n\t} else if ( x < 0.9 ) {\n\t\tt = poly10( x - 0.875 );\n\t} else {\n\t\ttd = 1.0 - x;\n\t\tqd = poly11( td );\n\t\tkdm = poly12( td - 0.05 );\n\t\tt = -ln( qd ) * ( kdm * ONE_DIV_PI );\n\t}\n\tif ( FLG ) {\n\t\t// Complete the transformation mentioned above for m < 0:\n\t\treturn t / sqrt( 1.0 - m );\n\t}\n\treturn t;\n}\n\n\n// EXPORTS //\n\nexport default ellipk;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5910034537907922;\n\t}\n\treturn 1.5910034537907922 + (x * (0.41600074399178694 + (x * (0.24579151426410342 + (x * (0.17948148291490615 + (x * (0.14455605708755515 + (x * (0.12320099331242772 + (x * (0.10893881157429353 + (x * (0.09885340987159291 + (x * (0.09143962920174975 + (x * (0.0858425915954139 + (x * 0.08154111871830322))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.63525673226458;\n\t}\n\treturn 1.63525673226458 + (x * (0.4711906261487323 + (x * (0.3097284108314996 + (x * (0.2522083117731357 + (x * (0.22672562321968465 + (x * (0.21577444672958598 + (x * (0.21310877187734892 + (x * (0.21602912460518828 + (x * (0.2232558316330579 + (x * (0.23418050129420992 + (x * (0.24855768297226408 + (x * 0.26636380989261754))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.685750354812596;\n\t}\n\treturn 1.685750354812596 + (x * (0.5417318486132803 + (x * (0.40152443839069024 + (x * (0.3696424734208891 + (x * (0.37606071535458363 + (x * (0.4052358870851259 + (x * (0.45329438175399905 + (x * (0.5205189476511842 + (x * (0.609426039204995 + (x * (0.7242635222829089 + (x * (0.8710138477098124 + (x * 1.057652872753547))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.7443505972256133;\n\t}\n\treturn 1.7443505972256133 + (x * (0.6348642753719353 + (x * (0.5398425641644455 + (x * (0.5718927051937874 + (x * (0.6702951362654062 + (x * (0.8325865900109772 + (x * (1.0738574482479333 + (x * (1.4220914606754977 + (x * (1.9203871834023047 + (x * (2.6325525483316543 + (x * (3.6521097473190394 + (x * (5.115867135558866 + (x * 7.224080007363877))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.8138839368169826;\n\t}\n\treturn 1.8138839368169826 + (x * (0.7631632457005573 + (x * (0.7619286053215958 + (x * (0.9510746536684279 + (x * (1.315180671703161 + (x * (1.9285606934774109 + (x * (2.9375093425313787 + (x * (4.594894405442878 + (x * (7.33007122188172 + (x * (11.871512597425301 + (x * (19.45851374822938 + (x * (32.20638657246427 + (x * (53.73749198700555 + (x * 90.27388602941))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.8989249102715535;\n\t}\n\treturn 1.8989249102715535 + (x * (0.9505217946182445 + (x * (1.1510775899590158 + (x * (1.7502391069863006 + (x * (2.952676812636875 + (x * (5.285800396121451 + (x * (9.83248571665998 + (x * (18.787148683275596 + (x * (36.61468615273698 + (x * (72.45292395127771 + (x * (145.1079577347069 + (x * (293.4786396308497 + (x * (598.385181505501 + (x * (1228.4200130758634 + (x * 2536.5297553827645))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2.0075983984243764;\n\t}\n\treturn 2.0075983984243764 + (x * (1.2484572312123474 + (x * (1.9262346570764797 + (x * (3.7512896400875877 + (x * (8.119944554932045 + (x * (18.665721308735552 + (x * (44.603924842914374 + (x * (109.50920543094983 + (x * (274.2779548232414 + (x * (697.5598008606327 + (x * (1795.7160145002472 + (x * (4668.38171679039 + (x * (12235.762468136643 + (x * (32290.17809718321 + (x * (85713.07608195965 + (x * (228672.1890493117 + (x * 612757.2711915852))))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2.1565156474996434;\n\t}\n\treturn 2.1565156474996434 + (x * (1.7918056418494632 + (x * (3.8267512874657132 + (x * (10.386724683637972 + (x * (31.403314054680703 + (x * (100.92370394986955 + (x * (337.3268282632273 + (x * (1158.7079305678278 + (x * (4060.9907421936323 + (x * (14454.001840343448 + (x * (52076.661075994045 + (x * (189493.65914621568 + (x * (695184.5762413896 + (x * (2567994.048255285 + (x * (9541921.966748387 + (x * (35634927.44218076 + (x * (133669298.46120408 + (x * (503352186.68662846 + (x * (1901975729.53866 + (x * 7208915015.330104))))))))))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2.3181226217125106;\n\t}\n\treturn 2.3181226217125106 + (x * (2.6169201502912327 + (x * (7.897935075731356 + (x * (30.502397154466724 + (x * (131.48693655235286 + (x * (602.9847637356492 + (x * (2877.024617809973 + (x * (14110.519919151804 + (x * (70621.4408815654 + (x * (358977.266582531 + (x * (1847238.2637239718 + (x * (9600515.416049214 + (x * (50307677.08502367 + (x * (265444188.6527128 + (x * (1408862325.0287027 + (x * 7515687935.373775))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2.473596173751344;\n\t}\n\treturn 2.473596173751344 + (x * (3.727624244118099 + (x * (15.607393035549306 + (x * (84.12850842805888 + (x * (506.98181970406137 + (x * (3252.2770581451236 + (x * (21713.242419574344 + (x * (149037.04518909327 + (x * (1043999.3310899908 + (x * (7427974.817042039 + (x * (53503839.67558661 + (x * (389249886.99487084 + (x * (2855288351.1008105 + (x * (21090077038.76684 + (x * (156699833947.7902 + (x * (1170222242422.44 + (x * (8777948323668.9375 + (x * (66101242752484.95 + (x * (499488053713388.8 + (x * 37859743397240296.0))))))))))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\treturn 0.0 + (x * (0.0625 + (x * (0.03125 + (x * (0.0205078125 + (x * (0.01513671875 + (x * (0.011934280395507812 + (x * (0.009816169738769531 + (x * (0.008315593004226685 + (x * (0.007199153304100037 + (x * (0.00633745662344154 + (x * (0.00565311038371874 + (x * (0.005097046040418718 + (x * (0.004636680381850056 + (x * (0.004249547423822886 + (x * 0.003919665602267974))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5910034537907922;\n\t}\n\treturn 1.5910034537907922 + (x * (0.41600074399178694 + (x * (0.24579151426410342 + (x * (0.17948148291490615 + (x * (0.14455605708755515 + (x * (0.12320099331242772 + (x * (0.10893881157429353 + (x * (0.09885340987159291 + (x * (0.09143962920174975 + (x * (0.0858425915954139 + (x * 0.08154111871830322))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original Julia code and copyright notice are from the [Julia library]{@link https://github.com/JuliaMath/SpecialFunctions.jl/blob/master/src/ellip.jl}. The implementation has been modified for JavaScript.\n*\n* ```text\n* The MIT License (MIT)\n*\n* Copyright (c) 2017 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and others:\n*\n* https://github.com/JuliaMath/SpecialFunctions.jl/graphs/contributors\n*\n* Permission is hereby granted, free of charge, to any person obtaining a copy\n* of this software and associated documentation files (the \"Software\"), to deal\n* in the Software without restriction, including without limitation the rights\n* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the Software is\n* furnished to do so, subject to the following conditions:\n*\n* The above copyright notice and this permission notice shall be included in all\n* copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n* SOFTWARE.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport ellipk from './../../../../base/special/ellipk';\nimport poly1 from './poly_p1.js';\nimport poly2 from './poly_p2.js';\nimport poly3 from './poly_p3.js';\nimport poly4 from './poly_p4.js';\nimport poly5 from './poly_p5.js';\nimport poly6 from './poly_p6.js';\nimport poly7 from './poly_p7.js';\nimport poly8 from './poly_p8.js';\nimport poly9 from './poly_p9.js';\nimport poly10 from './poly_p10.js';\nimport poly11 from './poly_p11.js';\nimport poly12 from './poly_p12.js';\n\n\n// MAIN //\n\n/**\n* Computes the complete elliptic integral of the second kind.\n*\n* ## Method\n*\n* - The function computes the complete elliptic integral of the second kind in terms of parameter \\\\( m \\\\), instead of the elliptic modulus \\\\( k \\\\).\n*\n* ```tex\n* E(m) = \\int_0^{\\pi/2} \\sqrt{1 - m (\\sin\\theta)^2} d\\theta\n* ```\n*\n* - The function uses a piecewise approximation polynomial as given in Fukushima (2009).\n*\n* - For \\\\( m < 0 \\\\), the implementation follows Fukushima (2015).\n*\n* ## References\n*\n* - Fukushima, Toshio. 2009. \"Fast computation of complete elliptic integrals and Jacobian elliptic functions.\" _Celestial Mechanics and Dynamical Astronomy_ 105 (4): 305. doi:[10.1007/s10569-009-9228-z](https://doi.org/10.1007/s10569-009-9228-z).\n* - Fukushima, Toshio. 2015. \"Precise and fast computation of complete elliptic integrals by piecewise minimax rational function approximation.\" _Journal of Computational and Applied Mathematics_ 282 (July): 71–76. doi:[10.1016/j.cam.2014.12.038](https://doi.org/10.1016/j.cam.2014.12.038).\n*\n* @param {number} m - input value\n* @returns {number} evaluated elliptic integral\n*\n* @example\n* var v = ellipe( 0.5 );\n* // returns ~1.351\n*\n* v = ellipe( -1.0 );\n* // returns ~1.910\n*\n* v = ellipe( 2.0 );\n* // returns NaN\n*\n* v = ellipe( Infinity );\n* // returns NaN\n*\n* v = ellipe( -Infinity );\n* // returns NaN\n*\n* v = ellipe( NaN );\n* // returns NaN\n*/\nfunction ellipe( m ) {\n\tvar FLG;\n\tvar kdm;\n\tvar edm;\n\tvar td;\n\tvar km;\n\tvar t;\n\tvar x;\n\n\tx = m;\n\tif ( m < 0.0 ) {\n\t\tx = m / ( m - 1.0 );\n\t\tFLG = true;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn HALF_PI;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x < 0.1 ) {\n\t\tt = poly1( x - 0.05 );\n\t} else if ( x < 0.2 ) {\n\t\tt = poly2( x - 0.15 );\n\t} else if ( x < 0.3 ) {\n\t\tt = poly3( x - 0.25 );\n\t} else if ( x < 0.4 ) {\n\t\tt = poly4( x - 0.35 );\n\t} else if ( x < 0.5 ) {\n\t\tt = poly5( x - 0.45 );\n\t} else if ( x < 0.6 ) {\n\t\tt = poly6( x - 0.55 );\n\t} else if ( x < 0.7 ) {\n\t\tt = poly7( x - 0.65 );\n\t} else if ( x < 0.8 ) {\n\t\tt = poly8( x - 0.75 );\n\t} else if ( x < 0.85 ) {\n\t\tt = poly9( x - 0.825 );\n\t} else if ( x < 0.9 ) {\n\t\tt = poly10( x - 0.875 );\n\t} else {\n\t\ttd = 0.95 - x;\n\t\tkdm = poly11(td);\n\t\tedm = poly12(td);\n\t\tkm = ellipk( x );\n\n\t\t// To avoid precision loss near 1, we use Eq. 33 from Fukushima (2009):\n\t\tt = ( HALF_PI + ( km * (kdm - edm) ) ) / kdm;\n\t}\n\tif ( FLG ) {\n\t\t// Complete the transformation mentioned above for m < 0:\n\t\treturn t * sqrt( 1.0 - m );\n\t}\n\treturn t;\n}\n\n\n// EXPORTS //\n\nexport default ellipe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5509733517804722;\n\t}\n\treturn 1.5509733517804722 + (x * (-0.4003010201031985 + (x * (-0.07849861944294194 + (x * (-0.034318853117591995 + (x * (-0.0197180433173655 + (x * (-0.01305950773199331 + (x * (-0.009442372874146548 + (x * (-0.007246728512402157 + (x * (-0.00580742401295609 + (x * -0.004809187786009338))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5101218320928198;\n\t}\n\treturn 1.5101218320928198 + (x * (-0.41711633390586755 + (x * (-0.09012382040477457 + (x * (-0.04372994401908431 + (x * (-0.027965493064761784 + (x * (-0.020644781177568104 + (x * (-0.016650786739707237 + (x * (-0.01426196082884252 + (x * (-0.012759847429264804 + (x * (-0.011799303775587354 + (x * -0.011197445703074968))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.4674622093394272;\n\t}\n\treturn 1.4674622093394272 + (x * (-0.43657629094633776 + (x * (-0.10515555766694255 + (x * (-0.05737184359324173 + (x * (-0.04139162772734022 + (x * (-0.03452772850528084 + (x * (-0.031495443512532785 + (x * (-0.030527000890325277 + (x * (-0.0309169840192389 + (x * (-0.03237139531475812 + (x * -0.03478996038640416))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.4226911334908792;\n\t}\n\treturn 1.4226911334908792 + (x * (-0.4595135196210487 + (x * (-0.12525053982206188 + (x * (-0.07813854509440948 + (x * (-0.06471427847205 + (x * (-0.06208433913173031 + (x * (-0.06519703281557247 + (x * (-0.07279389536257878 + (x * (-0.084959075171781 + (x * (-0.102539850131046 + (x * (-0.12705358515769605 + (x * -0.1607911206912746))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.3754019718711163;\n\t}\n\treturn 1.3754019718711163 + (x * (-0.4872021832731848 + (x * (-0.15331170134854022 + (x * (-0.11184944491702783 + (x * (-0.10884095252313576 + (x * (-0.12295422312026907 + (x * (-0.15221716396203505 + (x * (-0.20049532364269734 + (x * (-0.27617433306775174 + (x * (-0.39351311430437586 + (x * (-0.5757544060278792 + (x * (-0.8605232357272398 + (x * -1.3088332057585401))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.3250244979582302;\n\t}\n\treturn 1.3250244979582302 + (x * (-0.5217276475575667 + (x * (-0.19490643048212622 + (x * (-0.17162372682201127 + (x * (-0.20275465292641914 + (x * (-0.27879895311853475 + (x * (-0.42069845728100574 + (x * (-0.675948400853106 + (x * (-1.1363431218392293 + (x * (-1.9767211439543984 + (x * (-3.5316967730957227 + (x * (-6.446753640156048 + (x * -11.97703130208884))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.2707074796501499;\n\t}\n\treturn 1.2707074796501499 + (x * (-0.5668391682878666 + (x * (-0.2621607934324926 + (x * (-0.2922441735330774 + (x * (-0.4403978408504232 + (x * (-0.7749476413813975 + (x * (-1.498870837987561 + (x * (-3.089708310445187 + (x * (-6.6675959033810015 + (x * (-14.89436036517319 + (x * (-34.18120574251449 + (x * (-80.15895841905397 + (x * (-191.34894807629848 + (x * (-463.5938853480342 + (x * -1137.38082216936))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.2110560275684594;\n\t}\n\treturn 1.2110560275684594 + (x * (-0.6303064132874558 + (x * (-0.38716640952066916 + (x * (-0.5922782353119346 + (x * (-1.23755558451305 + (x * (-3.0320566617452474 + (x * (-8.18168822157359 + (x * (-23.55507217389693 + (x * (-71.04099935893065 + (x * (-221.879685319235 + (x * (-712.1364793277636 + (x * (-2336.1253314403966 + (x * (-7801.945954775964 + (x * (-26448.19586059192 + (x * (-90799.48341621365 + (x * (-315126.04064491636 + (x * -1104011.3443115912))))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.1613071521962828;\n\t}\n\treturn 1.1613071521962828 + (x * (-0.7011002845552895 + (x * (-0.5805514744654373 + (x * (-1.2436930610777865 + (x * (-3.679383613496635 + (x * (-12.815909243378957 + (x * (-49.25672530759985 + (x * (-202.18187354340904 + (x * (-869.8602699308701 + (x * (-3877.0058473132895 + (x * (-17761.7071017094 + (x * (-83182.69029154233 + (x * (-396650.4505013548 + (x * -1920033.4136826345))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.1246173251197522;\n\t}\n\treturn 1.1246173251197522 + (x * (-0.7708450563609095 + (x * (-0.8447940536449113 + (x * (-2.4900973094503946 + (x * (-10.239717411543843 + (x * (-49.7490054655148 + (x * (-267.09866751957054 + (x * (-1532.66588382523 + (x * (-9222.313478526092 + (x * (-57502.51612140314 + (x * (-368596.11674161063 + (x * (-2415611.0887010912 + (x * (-16120097.815816568 + (x * (-109209938.52030899 + (x * (-749380758.1942496 + (x * (-5198725846.725541 + (x * -36409256888.1214))))))))))))))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5910034537907922;\n\t}\n\treturn 1.5910034537907922 + (x * (0.41600074399178694 + (x * (0.24579151426410342 + (x * (0.17948148291490615 + (x * (0.14455605708755515 + (x * (0.12320099331242772 + (x * (0.10893881157429353 + (x * (0.09885340987159291 + (x * (0.09143962920174975 + (x * (0.0858425915954139 + (x * 0.08154111871830322))))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.5509733517804722;\n\t}\n\treturn 1.5509733517804722 + (x * (-0.4003010201031985 + (x * (-0.07849861944294194 + (x * (-0.034318853117591995 + (x * (-0.0197180433173655 + (x * (-0.01305950773199331 + (x * (-0.009442372874146548 + (x * (-0.007246728512402157 + (x * (-0.00580742401295609 + (x * -0.004809187786009338))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport ellipk from './../../../../base/special/ellipk';\nimport floor from './../../../../base/special/floor';\nimport sqrt from './../../../../base/special/sqrt';\nimport cosh from './../../../../base/special/cosh';\nimport sinh from './../../../../base/special/sinh';\nimport tanh from './../../../../base/special/tanh';\nimport atan from './../../../../base/special/atan';\nimport asin from './../../../../base/special/asin';\nimport sin from './../../../../base/special/sin';\nimport cos from './../../../../base/special/cos';\nimport abs from './../../../../base/special/abs';\nimport SQRT_EPS from '@stdlib/constants/float64/sqrt-eps';\nimport EPS from '@stdlib/constants/float64/eps';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// VARIABLES //\n\nvar debug = logger( 'elilpj:assign' );\nvar tmp4 = [ 0.0, 0.0, 0.0, 0.0 ];\nvar tmp2 = [ 0.0, 0.0 ];\nvar ca = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Jacobi elliptic functions sn, cn, dn, and Jacobi amplitude am.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var v = assign( 0.3, 0.5, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.293, ~0.956, ~0.978, ~0.298 ]\n*\n* @example\n* v = assign( 0.0, 0.0, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.0, ~1.0, ~1.0, ~0.0 ]\n*\n* @example\n* v = assign( Infinity, 1.0, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n* // returns [ ~1.0, ~0.0, ~0.0, ~1.571 ]\n*\n* @example\n* v = assign( 0.0, -2.0, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.0, ~1.0, ~1.0, NaN ]\n*\n* @example\n* v = assign( NaN, NaN, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n* // returns [ NaN, NaN, NaN, NaN ]\n*/\nfunction assign(u, m, out, stride, offset) {\n\tvar dnDenom;\n\tvar NANFLG;\n\tvar uK2cen;\n\tvar k1inv;\n\tvar sechu;\n\tvar sinhu;\n\tvar tanhu;\n\tvar phi0;\n\tvar phi1;\n\tvar atmp;\n\tvar FLG;\n\tvar gdu;\n\tvar uK2;\n\tvar uK4;\n\tvar mu;\n\tvar K2;\n\tvar K4;\n\tvar u0;\n\tvar sn;\n\tvar cn;\n\tvar dn;\n\tvar am;\n\tvar k;\n\tvar s;\n\tvar c;\n\tvar f;\n\tvar a;\n\tvar b;\n\tvar N;\n\n\tif ( m < 0.0 ) {\n\t\t// A&S 16.10.1 for a negative parameter, mapping -m to 0 < mu < 1\n\t\tmu = -m / ( 1.0 - m );\n\t\tk1inv = sqrt( 1.0 - m );\n\t\tassign( u * k1inv, mu, tmp4, 1, 0 );\n\t\tsn = ( tmp4[ 0 ] / tmp4[ 2 ] ) / k1inv;\n\t\tcn = tmp4[ 1 ] / tmp4[ 2 ];\n\t\tdn = 1.0 / tmp4[ 2 ];\n\t\tam = NaN;\n\t} else if ( m > 1.0 ) {\n\t\t// A&S 16.11.1 for reciprocal parameter, mapping m > 1 to 0 < mu < 1\n\t\tk = sqrt( m );\n\t\tassign( u * k, 1.0 / m, tmp4, 1, 0 );\n\t\tsn = tmp4[ 0 ] / k;\n\t\tcn = tmp4[ 2 ];\n\t\tdn = tmp4[ 1 ];\n\t\tam = NaN;\n\t} else if ( m === 0.0 ) {\n\t\t// A&S table 16.6, limiting case m = 0: circular trigonometric functions\n\t\tsincos( u, tmp2, 1, 0 );\n\t\tsn = tmp2[ 0 ];\n\t\tcn = tmp2[ 1 ];\n\t\tdn = 1.0;\n\t\tam = u;\n\t} else if ( m === 1.0 ) {\n\t\t// A&S table 16.6: limiting case m = 1: hyperbolic functions\n\t\tsn = tanh( u );\n\t\tcn = 1.0 / cosh( u );\n\t\tdn = cn;\n\t\tam = atan( sinh( u ) );\n\t} else if ( m < SQRT_EPS ) {\n\t\t// A&S 16.13.1 for small-u approximations. Additionally, compute K at extra cost in order to ensure returned values are correct outside the range [0, K].\n\t\tK4 = 4.0 * ellipk( m );\n\t\tu0 = ( ( u % K4 ) + K4 ) % K4;\n\t\tsincos( u0, tmp2, 1, 0 );\n\t\ts = tmp2[ 0 ];\n\t\tc = tmp2[ 1 ];\n\t\tf = 0.25 * m * ( u0 - ( s * c ) );\n\t\tsn = s - ( f * c );\n\t\tcn = c + ( f * s );\n\t\tdn = 1.0 - ( 0.5 * m * s * s );\n\t\tam = u - ( 0.25 * m * ( u - ( s * c ) ) );\n\t} else if ( m > 1.0 - SQRT_EPS ) {\n\t\t// A&S 16.15.1 - 16.15.4 for near-unity approximations. Additionally, compute K at extra cost so that we may reflect as needed to ensure the returned values are correct.\n\n\t\t// Reduce by the half-period 2K, centered about u = 0\n\t\tK2 = ellipk( m ) * 2.0;\n\t\tuK2cen = ( u / K2 ) + 0.5;\n\t\tuK2 = K2 * ( ( uK2cen % 1.0 ) - 0.5 );\n\n\t\t// Flip sn and cn in this range to get the reflections correct. We must be careful about precisely reusing uK2cen in order to get the edge cases correct.\n\t\tuK4 = uK2cen % 4;\n\t\tFLG = uK4 >= 1.0 && uK4 < 2.0;\n\n\t\tsinhu = sinh( uK2 );\n\t\tsechu = 1.0 / cosh( uK2 );\n\t\ttanhu = tanh( uK2 );\n\t\tgdu = ( floor( uK2cen ) * PI ) + atan( sinhu );\n\n\t\ta = 0.25 * ( 1.0 - m );\n\t\tb = a * ( sinhu - ( uK2 * sechu ) );\n\t\tsn = tanhu + ( b * sechu );\n\t\tcn = sechu - ( b * tanhu );\n\t\tdn = sechu + ( a * ( sinhu + ( uK2 * sechu ) ) * tanhu );\n\t\tam = gdu + b;\n\n\t\tif (FLG) {\n\t\t\tsn = -sn;\n\t\t\tcn = -cn;\n\t\t}\n\t} else {\n\t\t// A&S 16.4.1. Compute using the arithmetic-geometric mean.\n\t\ta = 1.0;\n\t\tb = sqrt( 1.0 - m );\n\t\tN = -1;\n\t\tNANFLG = false;\n\t\tdo {\n\t\t\tN += 1;\n\t\t\tif ( N > 8 ) {\n\t\t\t\tNANFLG = true;\n\t\t\t\tsn = NaN;\n\t\t\t\tcn = NaN;\n\t\t\t\tdn = NaN;\n\t\t\t\tam = NaN;\n\n\t\t\t\tdebug( 'Warning: Overflow encountered in iteration. Returning NaN for all output values.' );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tatmp = ( a + b ) * 0.5;\n\t\t\tc = ( a - b ) * 0.5;\n\t\t\tb = sqrt( a * b );\n\t\t\ta = atmp;\n\t\t\tca[ N ] = c / a;\n\t\t} while ( ca[ N ] >= EPS );\n\n\t\tif ( !NANFLG ) {\n\t\t\t// A&S 16.4.3:\n\t\t\tphi1 = ( 1 << N ) * ( u * a );\n\t\t\twhile ( N > 1 ) {\n\t\t\t\tN -= 1;\n\t\t\t\tphi1 = 0.5 * ( phi1 + asin( ca[ N ] * sin( phi1 ) ) );\n\t\t\t}\n\t\t\tphi0 = 0.5 * ( phi1 + asin( ca[ 0 ] * sin( phi1 ) ) );\n\n\t\t\tam = phi0;\n\t\t\tsincos( am, tmp2, 1, 0 );\n\t\t\tsn = tmp2[ 0 ];\n\t\t\tcn = tmp2[ 1 ];\n\n\t\t\t// When the denominator is small, switch to the definition of dn in terms of sn. Otherwise compute dn from the last two iterates.\n\t\t\tdnDenom = cos( phi1 - phi0 );\n\t\t\tif ( abs( dnDenom ) < 0.1 ) {\n\t\t\t\tdn = sqrt( 1.0 - ( m * sn * sn ) );\n\t\t\t} else {\n\t\t\t\tdn = cn / dnDenom;\n\t\t\t}\n\t\t}\n\t}\n\n\tout[ offset ] = sn;\n\tout[ offset + stride ] = cn;\n\tout[ offset + ( stride * 2 ) ] = dn;\n\tout[ offset + ( stride * 3 ) ] = am;\n\n\treturn out;\n}\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Simultaneously computes the Jacobi elliptic functions sn, cn, and dn, and am.\n*\n* ## Notes\n*\n* - Values are computed using the arithmetic-geometric from Abramowitz and Stegun 16.4.\n* - When m < 0 or m > 1, `sn`, `cn`, and `dn` are computed in terms of elliptic functions with 0 < m < 1 using the transformations from Abramowitz and Stegun 16.10 and 16.11, respectively. Thus the domain of m is any real number. When m < 0 or m > 1, `am` is not computed and will be returned as NaN.\n* - Values for small m (m < SQRT_EPS) are computed using the approximations of Abramowitz and Stegun 16.13. For each evaluation, the complete elliptic integral of the first kind, K(m), is computed in order to reduce the period and ensure valid output for all u.\n* - Values for m near unity (m > 1 - SQRT_EPS) are computed using the approximations of Abramowitz and Stegun 16.15. For each evaluation, the complete elliptic integral of the first kind, K(m), is computed in order to reduce the period and ensure valid output for all u.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @returns {Array} sn, cn, dn, and Jacobi amplitude am\n*\n* @example\n* var v = ellipj( 0.3, 0.5 );\n* // returns [ ~0.293, ~0.956, ~0.978, ~0.298 ]\n*\n* @example\n* v = ellipj( 0.0, 0.0 );\n* // returns [ ~0.0, ~1.0, ~1.0, ~0.0 ]\n*\n* @example\n* v = ellipj( Infinity, 1.0 );\n* // returns [ ~1.0, ~0.0, ~0.0, ~1.571 ]\n*\n* @example\n* v = ellipj( 0.0, -2.0 );\n* // returns [ ~0.0, ~1.0, ~1.0, NaN ]\n*\n* @example\n* v = ellipj( NaN, NaN );\n* // returns [ NaN, NaN, NaN, NaN ]\n*\n*/\nfunction ellipj( u, m ) {\n\treturn assign( u, m, [ 0.0, 0.0, 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default ellipj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// VARIABLES //\n\nvar tmp = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Compute the Jacobi elliptic function sn(u, m) of number u with modulus m.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @returns {number} sn(u, m)\n*\n* @example\n* import { sn as sn } from '@stdlib/math/base/special/ellipj';\n* var v = sn( 0.3, 0.5 );\n* // returns ~0.293\n*\n* @example\n* v = sn( 0.0, 0.0 );\n* // returns ~0.0\n*\n* @example\n* v = sn( Infinity, 1.0 );\n* // returns ~1.0\n*\n* @example\n* v = sn( 0.0, -2.0 );\n* // returns ~0.0\n*\n* @example\n* v = sn( NaN, NaN );\n* // returns NaN\n*\n*/\nfunction sn( u, m ) {\n\tassign( u, m, tmp, 1, 0 );\n\treturn tmp[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default sn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// VARIABLES //\n\nvar tmp = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Compute the Jacobi elliptic function cn(u, m) of number u with modulus m.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @returns {number} cn(u, m)\n*\n* @example\n* var v = cn( 0.3, 0.5 );\n* // returns ~0.956\n*\n* @example\n* v = cn( 0.0, 0.0 );\n* // returns ~1.0\n*\n* @example\n* v = cn( Infinity, 1.0 );\n* // returns ~0.0\n*\n* @example\n* v = cn( 0.0, -2.0 );\n* // returns ~1.0\n*\n* @example\n* v = cn( NaN, NaN );\n* // returns NaN\n*\n*/\nfunction cn( u, m ) {\n\tassign( u, m, tmp, 1, 0 );\n\treturn tmp[ 1 ];\n}\n\n\n// EXPORTS //\n\nexport default cn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// VARIABLES //\n\nvar tmp = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Compute the Jacobi elliptic function dn(u, m) of number u with modulus m.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @returns {number} dn(u, m)\n*\n* @example\n* var v = dn( 0.3, 0.5 );\n* // returns ~0.978\n*\n* @example\n* v = dn( 0.0, 0.0 );\n* // returns ~1.0\n*\n* @example\n* v = dn( Infinity, 1.0 );\n* // returns ~0.0\n*\n* @example\n* v = dn( 0.0, -2.0 );\n* // returns ~1.0\n*\n* @example\n* v = dn( NaN, NaN );\n* // returns NaN\n*\n*/\nfunction dn( u, m ) {\n\tassign( u, m, tmp, 1, 0 );\n\treturn tmp[ 2 ];\n}\n\n\n// EXPORTS //\n\nexport default dn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// VARIABLES //\n\nvar tmp = [ 0.0, 0.0, 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Compute the Jacobi modulus, am(u, m), of number u with modulus m.\n*\n* @param {number} u - input value\n* @param {number} m - modulus `m`, equivalent to `k²`\n* @returns {number} Jacobi amplitude, `am`\n*\n* @example\n* var v = am( 0.3, 0.5 );\n* // returns ~0.298\n*\n* @example\n* v = am( 0.0, 0.0 );\n* // returns ~0.0\n*\n* @example\n* v = am( Infinity, 1.0 );\n* // returns ~1.571\n*\n* @example\n* v = am( 0.0, -2.0 );\n* // returns NaN\n*\n* @example\n* v = am( NaN, NaN );\n* // returns NaN\n*\n*/\nfunction am( u, m ) {\n\tassign( u, m, tmp, 1, 0 );\n\treturn tmp[ 3 ];\n}\n\n\n// EXPORTS //\n\nexport default am;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Jacobi elliptic functions sn, cn, dn, and Jacobi amplitude am.\n*\n* @module @stdlib/math/base/special/ellipj\n*\n* @example\n* import ellipj from '@stdlib/math/base/special/ellipj';\n*\n* var v = ellipj( 0.3, 0.5 );\n* // returns [ ~0.293, ~0.956, ~0.978, ~0.298 ]\n*\n* v = ellipj( 0.0, 0.0 );\n* // returns [ ~0.0, ~1.0, ~1.0, ~0.0 ]\n*\n* v = ellipj( Infinity, 1.0 );\n* // returns [ ~1.0, ~0.0, ~0.0, ~1.571 ]\n*\n* v = ellipj( 0.0, -2.0 );\n* // returns [ ~0.0, ~1.0, ~1.0, NaN ]\n*\n* v = ellipj( NaN, NaN );\n* // returns [ NaN, NaN, NaN, NaN ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport main from './main.js';\nimport sn from './sn.js';\nimport cn from './cn.js';\nimport dn from './dn.js';\nimport am from './am.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\nsetReadOnly( main, 'sn', sn );\nsetReadOnly( main, 'cn', cn );\nsetReadOnly( main, 'dn', dn );\nsetReadOnly( main, 'am', am );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [FreeBSD]{@link https://svnweb.freebsd.org/base/release/9.3.0/lib/msun/src/s_erf.c}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.\n*\n* Developed at SunPro, a Sun Microsystems, Inc. business.\n* Permission to use, copy, modify, and distribute this\n* software is freely granted, provided that this notice\n* is preserved.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport exp from './../../../../base/special/exp';\nimport setLowWord from '@stdlib/number/float64/base/set-low-word';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport polyvalPP from './polyval_pp.js';\nimport polyvalQQ from './polyval_qq.js';\nimport polyvalPA from './polyval_pa.js';\nimport polyvalQA from './polyval_qa.js';\nimport polyvalRA from './polyval_ra.js';\nimport polyvalSA from './polyval_sa.js';\nimport polyvalRB from './polyval_rb.js';\nimport polyvalSB from './polyval_sb.js';\n\n\n// VARIABLES //\n\nvar TINY = 1.0e-300;\nvar VERY_TINY = 2.848094538889218e-306; // 0x00800000, 0x00000000\n\n// 2**-28 = 1/(1<<28) = 1/268435456\nvar SMALL = 3.725290298461914e-9;\n\nvar ERX = 8.45062911510467529297e-1; // 0x3FEB0AC1, 0x60000000\n\nvar EFX = 1.28379167095512586316e-1; // 0x3FC06EBA, 0x8214DB69\nvar EFX8 = 1.02703333676410069053; // 0x3FF06EBA, 0x8214DB69\n\nvar PPC = 1.28379167095512558561e-1; // 0x3FC06EBA, 0x8214DB68\nvar QQC = 1.0;\n\nvar PAC = -2.36211856075265944077e-3; // 0xBF6359B8, 0xBEF77538\nvar QAC = 1.0;\n\nvar RAC = -9.86494403484714822705e-3; // 0xBF843412, 0x600D6435\nvar SAC = 1.0;\n\nvar RBC = -9.86494292470009928597e-3; // 0xBF843412, 0x39E86F4A\nvar SBC = 1.0;\n\n\n// MAIN //\n\n/**\n* Evaluates the error function.\n*\n* ```tex\n* \\operatorname{erf}(x) = \\frac{2}{\\sqrt{\\pi}} \\int^{x}_{0} e^{-t^2}\\ \\mathrm{dt}\n* ```\n*\n* Note that\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erfc}(x) &= 1 - \\operatorname{erf}(x) \\\\\n* \\operatorname{erf}(-x) &= -\\operatorname{erf}(x) \\\\\n* \\operatorname{erfc}(-x) &= 2 - \\operatorname{erfc}(x)\n* \\end{align*}\n* ```\n*\n* ## Method\n*\n* 1. For \\\\(|x| \\in [0, 0.84375)\\\\),\n*\n* ```tex\n* \\operatorname{erf}(x) = x + x \\cdot \\operatorname{R}(x^2)\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* 1 - \\operatorname{erf}(x) & \\textrm{if}\\ x \\in (-.84375,0.25) \\\\\n* 0.5 + ((0.5-x)-x \\mathrm{R}) & \\textrm{if}\\ x \\in [0.25,0.84375)\n* \\end{cases}\n* ```\n*\n* where \\\\(R = P/Q\\\\) and where \\\\(P\\\\) is an odd polynomial of degree \\\\(8\\\\) and \\\\(Q\\\\) is an odd polynomial of degree \\\\(10\\\\).\n*\n* ```tex\n* \\biggl| \\mathrm{R} - \\frac{\\operatorname{erf}(x)-x}{x} \\biggr| \\leq 2^{-57.90}\n* ```\n*\n* \n*\n* The formula is derived by noting\n*\n* ```tex\n* \\operatorname{erf}(x) = \\frac{2}{\\sqrt{\\pi}}\\biggl(x - \\frac{x^3}{3} + \\frac{x^5}{10} - \\frac{x^7}{42} + \\ldots \\biggr)\n* ```\n*\n* and that\n*\n* ```tex\n* \\frac{2}{\\sqrt{\\pi}} = 1.128379167095512573896158903121545171688\n* ```\n*\n* is close to unity. The interval is chosen because the fix point of \\\\(\\operatorname{erf}(x)\\\\) is near \\\\(0.6174\\\\) (i.e., \\\\(\\operatorname{erf(x)} = x\\\\) when \\\\(x\\\\) is near \\\\(0.6174\\\\)), and, by some experiment, \\\\(0.84375\\\\) is chosen to guarantee the error is less than one ulp for \\\\(\\operatorname{erf}(x)\\\\).\n*\n* \n*\n* 2. For \\\\(|x| \\in [0.84375,1.25)\\\\), let \\\\(s = |x|-1\\\\), and \\\\(c = 0.84506291151\\\\) rounded to single (\\\\(24\\\\) bits)\n*\n* ```tex\n* \\operatorname{erf}(x) = \\operatorname{sign}(x) \\cdot \\biggl(c + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\\biggr)\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* (1-c) - \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)} & \\textrm{if}\\ x > 0 \\\\\n* 1 + \\biggl(c + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\\biggr) & \\textrm{if}\\ x < 0\n* \\end{cases}\n* ```\n*\n* where\n*\n* ```tex\n* \\biggl|\\frac{\\mathrm{P1}}{\\mathrm{Q1}} - (\\operatorname{erf}(|x|)-c)\\biggr| \\leq 2^{-59.06}\n* ```\n*\n* \n*\n* Here, we use the Taylor series expansion at \\\\(x = 1\\\\)\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(1+s) &= \\operatorname{erf}(1) + s\\cdot \\operatorname{poly}(s) \\\\\n* &= 0.845.. + \\frac{\\operatorname{P1}(s)}{\\operatorname{Q1}(s)}\n* \\end{align*}\n* ```\n*\n* using a rational approximation to approximate\n*\n* ```tex\n* \\operatorname{erf}(1+s) - (c = (\\mathrm{single})0.84506291151)\n* ```\n*\n* \n*\n* Note that, for \\\\(x \\in [0.84375,1.25)\\\\), \\\\(|\\mathrm{P1}/\\mathrm{Q1}| < 0.078\\\\), where\n*\n* - \\\\(\\operatorname{P1}(s)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(s\\\\)\n* - \\\\(\\operatorname{Q1}(s)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(s\\\\)\n*\n* 3. For \\\\(x \\in [1.25,1/0.35)\\\\),\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erfc}(x) &= \\frac{1}{x}e^{-x^2-0.5625+(\\mathrm{R1}/\\mathrm{S1})} \\\\\n* \\operatorname{erf}(x) &= 1 - \\operatorname{erfc}(x)\n* \\end{align*}\n* ```\n*\n* where\n*\n* - \\\\(\\operatorname{R1}(z)\\\\) is a degree \\\\(7\\\\) polynomial in \\\\(z\\\\), where \\\\(z = 1/x^2\\\\)\n* - \\\\(\\operatorname{S1}(z)\\\\) is a degree \\\\(8\\\\) polynomial in \\\\(z\\\\)\n*\n* 4. For \\\\(x \\in [1/0.35,28)\\\\),\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* \\frac{1}{x} e^{-x^2-0.5625+(\\mathrm{R2}/\\mathrm{S2})} & \\textrm{if}\\ x > 0 \\\\\n* 2.0 - \\frac{1}{x} e^{-x^2-0.5625+(\\mathrm{R2}/\\mathrm{S2})} & \\textrm{if}\\ -6 < x < 0 \\\\\n* 2.0 - \\mathrm{tiny} & \\textrm{if}\\ x \\leq -6\n* \\end{cases}\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erf}(x) = \\begin{cases}\n* \\operatorname{sign}(x) \\cdot (1.0 - \\operatorname{erfc}(x)) & \\textrm{if}\\ x < 6 \\\\\n* \\operatorname{sign}(x) \\cdot (1.0 - \\mathrm{tiny}) & \\textrm{otherwise}\n* \\end{cases}\n* ```\n*\n* where\n*\n* - \\\\(\\operatorname{R2}(z)\\\\) is a degree \\\\(6\\\\) polynomial in \\\\(z\\\\), where \\\\(z = 1/x^2\\\\)\n* - \\\\(\\operatorname{S2}(z)\\\\) is a degree \\\\(7\\\\) polynomial in \\\\(z\\\\)\n*\n* 5. For \\\\(x \\in [28, \\infty)\\\\),\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(x) &= \\operatorname{sign}(x) \\cdot (1 - \\mathrm{tiny}) & \\textrm{(raise inexact)}\n* \\end{align*}\n* ```\n*\n* and\n*\n* ```tex\n* \\operatorname{erfc}(x) = \\begin{cases}\n* \\mathrm{tiny} \\cdot \\mathrm{tiny} & \\textrm{if}\\ x > 0\\ \\textrm{(raise underflow)} \\\\\n* 2 - \\mathrm{tiny} & \\textrm{if}\\ x < 0\n* \\end{cases}\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{erf}(0) &= 0 \\\\\n* \\operatorname{erf}(-0) &= -0 \\\\\n* \\operatorname{erf}(\\infty) &= 1 \\\\\n* \\operatorname{erf}(-\\infty) &= -1 \\\\\n* \\operatorname{erfc}(0) &= 1 \\\\\n* \\operatorname{erfc}(\\infty) &= 0 \\\\\n* \\operatorname{erfc}(-\\infty) &= 2 \\\\\n* \\operatorname{erf}(\\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{erfc}(\\mathrm{NaN}) &= \\mathrm{NaN}\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - To compute \\\\(\\exp(-x^2-0.5625+(\\mathrm{R}/\\mathrm{S}))\\\\), let \\\\(s\\\\) be a single precision number and \\\\(s := x\\\\); then\n*\n* ```tex\n* -x^2 = -s^2 + (s-x)(s+x)\n* ```\n*\n* and\n*\n* ```tex\n* e^{-x^2-0.5626+(\\mathrm{R}/\\mathrm{S})} = e^{-s^2-0.5625} e^{(s-x)(s+x)+(\\mathrm{R}/\\mathrm{S})}\n* ```\n*\n* - `#4` and `#5` make use of the asymptotic series\n*\n* ```tex\n* \\operatorname{erfc}(x) \\approx \\frac{e^{-x^2}}{x\\sqrt{\\pi}} (1 + \\operatorname{poly}(1/x^2))\n* ```\n*\n* We use a rational approximation to approximate\n*\n* ```tex\n* g(s) = f(1/x^2) = \\ln(\\operatorname{erfc}(x) \\cdot x) - x^2 + 0.5625\n* ```\n*\n* - The error bound for \\\\(\\mathrm{R1}/\\mathrm{S1}\\\\) is\n*\n* ```tex\n* |\\mathrm{R1}/\\mathrm{S1} - f(x)| < 2^{-62.57}\n* ```\n*\n* and for \\\\(\\mathrm{R2}/\\mathrm{S2}\\\\) is\n*\n* ```tex\n* |\\mathrm{R2}/\\mathrm{S2} - f(x)| < 2^{-61.52}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = erf( 2.0 );\n* // returns ~0.9953\n*\n* @example\n* var y = erf( -1.0 );\n* // returns ~-0.8427\n*\n* @example\n* var y = erf( -0.0 );\n* // returns -0.0\n*\n* @example\n* var y = erf( NaN );\n* // returns NaN\n*/\nfunction erf( x ) {\n\tvar sign;\n\tvar ax;\n\tvar z;\n\tvar r;\n\tvar s;\n\tvar y;\n\tvar p;\n\tvar q;\n\n\t// Special case: NaN\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\t// Special case: +infinity\n\tif ( x === PINF ) {\n\t\treturn 1.0;\n\t}\n\t// Special case: -infinity\n\tif ( x === NINF ) {\n\t\treturn -1.0;\n\t}\n\t// Special case: +-0\n\tif ( x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( x < 0.0 ) {\n\t\tsign = true;\n\t\tax = -x;\n\t} else {\n\t\tsign = false;\n\t\tax = x;\n\t}\n\t// |x| < 0.84375\n\tif ( ax < 0.84375 ) {\n\t\tif ( ax < SMALL ) {\n\t\t\tif ( ax < VERY_TINY ) {\n\t\t\t\t// Avoid underflow:\n\t\t\t\treturn 0.125 * ( (8.0*x) + (EFX8*x) );\n\t\t\t}\n\t\t\treturn x + (EFX*x);\n\t\t}\n\t\tz = x * x;\n\t\tr = PPC + ( z*polyvalPP( z ) );\n\t\ts = QQC + ( z*polyvalQQ( z ) );\n\t\ty = r / s;\n\t\treturn x + (x*y);\n\t}\n\t// 0.84375 <= |x| < 1.25\n\tif ( ax < 1.25 ) {\n\t\ts = ax - 1.0;\n\t\tp = PAC + ( s*polyvalPA( s ) );\n\t\tq = QAC + ( s*polyvalQA( s ) );\n\t\tif ( sign ) {\n\t\t\treturn -ERX - (p/q);\n\t\t}\n\t\treturn ERX + (p/q);\n\t}\n\t// +inf > |x| >= 6\n\tif ( ax >= 6.0 ) {\n\t\tif ( sign ) {\n\t\t\treturn TINY - 1.0; // raise inexact\n\t\t}\n\t\treturn 1.0 - TINY; // raise inexact\n\t}\n\ts = 1.0 / (ax*ax);\n\n\t// |x| < 1/0.35 ~ 2.857143\n\tif ( ax < 2.857142857142857 ) {\n\t\tr = RAC + ( s*polyvalRA( s ) );\n\t\ts = SAC + ( s*polyvalSA( s ) );\n\t}\n\t// |x| >= 1/0.35 ~ 2.857143\n\telse {\n\t\tr = RBC + ( s*polyvalRB( s ) );\n\t\ts = SBC + ( s*polyvalSB( s ) );\n\t}\n\tz = setLowWord( ax, 0 ); // pseudo-single (20-bit) precision x\n\tr = exp( -(z*z) - 0.5625 ) * exp( ( (z-ax) * (z+ax) ) + (r/s) );\n\tif ( sign ) {\n\t\treturn (r/ax) - 1.0;\n\t}\n\treturn 1.0 - (r/ax);\n}\n\n\n// EXPORTS //\n\nexport default erf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.3250421072470015;\n\t}\n\treturn -0.3250421072470015 + (x * (-0.02848174957559851 + (x * (-0.005770270296489442 + (x * -0.000023763016656650163))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.39791722395915535;\n\t}\n\treturn 0.39791722395915535 + (x * (0.0650222499887673 + (x * (0.005081306281875766 + (x * (0.00013249473800432164 + (x * -0.000003960228278775368))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.41485611868374833;\n\t}\n\treturn 0.41485611868374833 + (x * (-0.3722078760357013 + (x * (0.31834661990116175 + (x * (-0.11089469428239668 + (x * (0.035478304325618236 + (x * -0.002166375594868791))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 0.10642088040084423;\n\t}\n\treturn 0.10642088040084423 + (x * (0.540397917702171 + (x * (0.07182865441419627 + (x * (0.12617121980876164 + (x * (0.01363708391202905 + (x * 0.011984499846799107))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.6938585727071818;\n\t}\n\treturn -0.6938585727071818 + (x * (-10.558626225323291 + (x * (-62.375332450326006 + (x * (-162.39666946257347 + (x * (-184.60509290671104 + (x * (-81.2874355063066 + (x * -9.814329344169145))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 19.651271667439257;\n\t}\n\treturn 19.651271667439257 + (x * (137.65775414351904 + (x * (434.56587747522923 + (x * (645.3872717332679 + (x * (429.00814002756783 + (x * (108.63500554177944 + (x * (6.570249770319282 + (x * -0.0604244152148581))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -0.799283237680523;\n\t}\n\treturn -0.799283237680523 + (x * (-17.757954917754752 + (x * (-160.63638485582192 + (x * (-637.5664433683896 + (x * (-1025.0951316110772 + (x * -483.5191916086514))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 30.33806074348246;\n\t}\n\treturn 30.33806074348246 + (x * (325.7925129965739 + (x * (1536.729586084437 + (x * (3199.8582195085955 + (x * (2553.0504064331644 + (x * (474.52854120695537 + (x * -22.44095244658582))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/* eslint-disable max-len, no-mixed-operators, max-lines */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [SciPy]{@link https://github.com/scipy/scipy/blob/ed14bf0a66440a4d164581499fda662121963a56/scipy/special/Faddeeva.cc}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (c) 2012 Massachusetts Institute of Technology\n*\n* Permission is hereby granted, free of charge, to any person obtaining\n* a copy of this software and associated documentation files (the\n* \"Software\"), to deal in the Software without restriction, including\n* without limitation the rights to use, copy, modify, merge, publish,\n* distribute, sublicense, and/or sell copies of the Software, and to\n* permit persons to whom the Software is furnished to do so, subject to\n* the following conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\n\n\n// VARIABLES //\n\nvar table = [ p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100 ];\n\n\n// FUNCTIONS //\n\n/**\n* Chebyshev polynomial for \\[0, 0.01).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p0( t ) {\n\treturn 0.70878032454106438663e-3 + (0.71234091047026302958e-3 + (0.35779077297597742384e-5 + (0.17403143962587937815e-7 + (0.81710660047307788845e-10 + (0.36885022360434957634e-12 + 0.15917038551111111111e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.01, 0.02).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p1( t ) {\n\treturn 0.21479143208285144230e-2 + (0.72686402367379996033e-3 + (0.36843175430938995552e-5 + (0.18071841272149201685e-7 + (0.85496449296040325555e-10 + (0.38852037518534291510e-12 + 0.16868473576888888889e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.02, 0.03).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p2( t ) {\n\treturn 0.36165255935630175090e-2 + (0.74182092323555510862e-3 + (0.37948319957528242260e-5 + (0.18771627021793087350e-7 + (0.89484715122415089123e-10 + (0.40935858517772440862e-12 + 0.17872061464888888889e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.03, 0.04).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p3( t ) {\n\treturn 0.51154983860031979264e-2 + (0.75722840734791660540e-3 + (0.39096425726735703941e-5 + (0.19504168704300468210e-7 + (0.93687503063178993915e-10 + (0.43143925959079664747e-12 + 0.18939926435555555556e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.04, 0.05).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p4( t ) {\n\treturn 0.66457513172673049824e-2 + (0.77310406054447454920e-3 + (0.40289510589399439385e-5 + (0.20271233238288381092e-7 + (0.98117631321709100264e-10 + (0.45484207406017752971e-12 + 0.20076352213333333333e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.05, 0.06).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p5( t ) {\n\treturn 0.82082389970241207883e-2 + (0.78946629611881710721e-3 + (0.41529701552622656574e-5 + (0.21074693344544655714e-7 + (0.10278874108587317989e-9 + (0.47965201390613339638e-12 + 0.21285907413333333333e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.06, 0.07).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p6( t ) {\n\treturn 0.98039537275352193165e-2 + (0.80633440108342840956e-3 + (0.42819241329736982942e-5 + (0.21916534346907168612e-7 + (0.10771535136565470914e-9 + (0.50595972623692822410e-12 + 0.22573462684444444444e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.07, 0.08).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p7( t ) {\n\treturn 0.11433927298290302370e-1 + (0.82372858383196561209e-3 + (0.44160495311765438816e-5 + (0.22798861426211986056e-7 + (0.11291291745879239736e-9 + (0.53386189365816880454e-12 + 0.23944209546666666667e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.08, 0.09).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p8( t ) {\n\treturn 0.13099232878814653979e-1 + (0.84167002467906968214e-3 + (0.45555958988457506002e-5 + (0.23723907357214175198e-7 + (0.11839789326602695603e-9 + (0.56346163067550237877e-12 + 0.25403679644444444444e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.09, 0.10).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p9( t ) {\n\treturn 0.14800987015587535621e-1 + (0.86018092946345943214e-3 + (0.47008265848816866105e-5 + (0.24694040760197315333e-7 + (0.12418779768752299093e-9 + (0.59486890370320261949e-12 + 0.26957764568888888889e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.10, 0.11).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p10( t ) {\n\treturn 0.16540351739394069380e-1 + (0.87928458641241463952e-3 + (0.48520195793001753903e-5 + (0.25711774900881709176e-7 + (0.13030128534230822419e-9 + (0.62820097586874779402e-12 + 0.28612737351111111111e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.11, 0.12).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p11( t ) {\n\treturn 0.18318536789842392647e-1 + (0.89900542647891721692e-3 + (0.50094684089553365810e-5 + (0.26779777074218070482e-7 + (0.13675822186304615566e-9 + (0.66358287745352705725e-12 + 0.30375273884444444444e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.12, 0.13).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p12( t ) {\n\treturn 0.20136801964214276775e-1 + (0.91936908737673676012e-3 + (0.51734830914104276820e-5 + (0.27900878609710432673e-7 + (0.14357976402809042257e-9 + (0.70114790311043728387e-12 + 0.32252476000000000000e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.13, 0.14).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p13( t ) {\n\treturn 0.21996459598282740954e-1 + (0.94040248155366777784e-3 + (0.53443911508041164739e-5 + (0.29078085538049374673e-7 + (0.15078844500329731137e-9 + (0.74103813647499204269e-12 + 0.34251892320000000000e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.14, 0.15).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p14( t ) {\n\treturn 0.23898877187226319502e-1 + (0.96213386835900177540e-3 + (0.55225386998049012752e-5 + (0.30314589961047687059e-7 + (0.15840826497296335264e-9 + (0.78340500472414454395e-12 + 0.36381553564444444445e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.15, 0.16).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p15( t ) {\n\treturn 0.25845480155298518485e-1 + (0.98459293067820123389e-3 + (0.57082915920051843672e-5 + (0.31613782169164830118e-7 + (0.16646478745529630813e-9 + (0.82840985928785407942e-12 + 0.38649975768888888890e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.16, 0.17).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p16( t ) {\n\treturn 0.27837754783474696598e-1 + (0.10078108563256892757e-2 + (0.59020366493792212221e-5 + (0.32979263553246520417e-7 + (0.17498524159268458073e-9 + (0.87622459124842525110e-12 + 0.41066206488888888890e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.17, 0.18).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p17( t ) {\n\treturn 0.29877251304899307550e-1 + (0.10318204245057349310e-2 + (0.61041829697162055093e-5 + (0.34414860359542720579e-7 + (0.18399863072934089607e-9 + (0.92703227366365046533e-12 + 0.43639844053333333334e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.18, 0.19).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p18( t ) {\n\treturn 0.31965587178596443475e-1 + (0.10566560976716574401e-2 + (0.63151633192414586770e-5 + (0.35924638339521924242e-7 + (0.19353584758781174038e-9 + (0.98102783859889264382e-12 + 0.46381060817777777779e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.19, 0.20).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p19( t ) {\n\treturn 0.34104450552588334840e-1 + (0.10823541191350532574e-2 + (0.65354356159553934436e-5 + (0.37512918348533521149e-7 + (0.20362979635817883229e-9 + (0.10384187833037282363e-11 + 0.49300625262222222221e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.20, 0.21).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p20( t ) {\n\treturn 0.36295603928292425716e-1 + (0.11089526167995268200e-2 + (0.67654845095518363577e-5 + (0.39184292949913591646e-7 + (0.21431552202133775150e-9 + (0.10994259106646731797e-11 + 0.52409949102222222221e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.21, 0.22).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p21( t ) {\n\treturn 0.38540888038840509795e-1 + (0.11364917134175420009e-2 + (0.70058230641246312003e-5 + (0.40943644083718586939e-7 + (0.22563034723692881631e-9 + (0.11642841011361992885e-11 + 0.55721092871111111110e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.22, 0.23).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p22( t ) {\n\treturn 0.40842225954785960651e-1 + (0.11650136437945673891e-2 + (0.72569945502343006619e-5 + (0.42796161861855042273e-7 + (0.23761401711005024162e-9 + (0.12332431172381557035e-11 + 0.59246802364444444445e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.23, 0.24).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p23( t ) {\n\treturn 0.43201627431540222422e-1 + (0.11945628793917272199e-2 + (0.75195743532849206263e-5 + (0.44747364553960993492e-7 + (0.25030885216472953674e-9 + (0.13065684400300476484e-11 + 0.63000532853333333334e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.24, 0.25).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p24( t ) {\n\treturn 0.45621193513810471438e-1 + (0.12251862608067529503e-2 + (0.77941720055551920319e-5 + (0.46803119830954460212e-7 + (0.26375990983978426273e-9 + (0.13845421370977119765e-11 + 0.66996477404444444445e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.25, 0.26).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p25( t ) {\n\treturn 0.48103121413299865517e-1 + (0.12569331386432195113e-2 + (0.80814333496367673980e-5 + (0.48969667335682018324e-7 + (0.27801515481905748484e-9 + (0.14674637611609884208e-11 + 0.71249589351111111110e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.26, 0.27).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p26( t ) {\n\treturn 0.50649709676983338501e-1 + (0.12898555233099055810e-2 + (0.83820428414568799654e-5 + (0.51253642652551838659e-7 + (0.29312563849675507232e-9 + (0.15556512782814827846e-11 + 0.75775607822222222221e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.27, 0.28).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p27( t ) {\n\treturn 0.53263363664388864181e-1 + (0.13240082443256975769e-2 + (0.86967260015007658418e-5 + (0.53662102750396795566e-7 + (0.30914568786634796807e-9 + (0.16494420240828493176e-11 + 0.80591079644444444445e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.28, 0.29).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p28( t ) {\n\treturn 0.55946601353500013794e-1 + (0.13594491197408190706e-2 + (0.90262520233016380987e-5 + (0.56202552975056695376e-7 + (0.32613310410503135996e-9 + (0.17491936862246367398e-11 + 0.85713381688888888890e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.29, 0.30).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p29( t ) {\n\treturn 0.58702059496154081813e-1 + (0.13962391363223647892e-2 + (0.93714365487312784270e-5 + (0.58882975670265286526e-7 + (0.34414937110591753387e-9 + (0.18552853109751857859e-11 + 0.91160736711111111110e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.30, 0.31).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p30( t ) {\n\treturn 0.61532500145144778048e-1 + (0.14344426411912015247e-2 + (0.97331446201016809696e-5 + (0.61711860507347175097e-7 + (0.36325987418295300221e-9 + (0.19681183310134518232e-11 + 0.96952238400000000000e-14 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.31, 0.32).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p31( t ) {\n\treturn 0.64440817576653297993e-1 + (0.14741275456383131151e-2 + (0.10112293819576437838e-4 + (0.64698236605933246196e-7 + (0.38353412915303665586e-9 + (0.20881176114385120186e-11 + 0.10310784480000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.32, 0.33).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p32( t ) {\n\treturn 0.67430045633130393282e-1 + (0.15153655418916540370e-2 + (0.10509857606888328667e-4 + (0.67851706529363332855e-7 + (0.40504602194811140006e-9 + (0.22157325110542534469e-11 + 0.10964842115555555556e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.33, 0.34).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p33( t ) {\n\treturn 0.70503365513338850709e-1 + (0.15582323336495709827e-2 + (0.10926868866865231089e-4 + (0.71182482239613507542e-7 + (0.42787405890153386710e-9 + (0.23514379522274416437e-11 + 0.11659571751111111111e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.34, 0.35).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p34( t ) {\n\treturn 0.73664114037944596353e-1 + (0.16028078812438820413e-2 + (0.11364423678778207991e-4 + (0.74701423097423182009e-7 + (0.45210162777476488324e-9 + (0.24957355004088569134e-11 + 0.12397238257777777778e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.35, 0.36).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p35( t ) {\n\treturn 0.76915792420819562379e-1 + (0.16491766623447889354e-2 + (0.11823685320041302169e-4 + (0.78420075993781544386e-7 + (0.47781726956916478925e-9 + (0.26491544403815724749e-11 + 0.13180196462222222222e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.36, 0.37).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p36( t ) {\n\treturn 0.80262075578094612819e-1 + (0.16974279491709504117e-2 + (0.12305888517309891674e-4 + (0.82350717698979042290e-7 + (0.50511496109857113929e-9 + (0.28122528497626897696e-11 + 0.14010889635555555556e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.37, 0.38).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p37( t ) {\n\treturn 0.83706822008980357446e-1 + (0.17476561032212656962e-2 + (0.12812343958540763368e-4 + (0.86506399515036435592e-7 + (0.53409440823869467453e-9 + (0.29856186620887555043e-11 + 0.14891851591111111111e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.38, 0.39).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p38( t ) {\n\treturn 0.87254084284461718231e-1 + (0.17999608886001962327e-2 + (0.13344443080089492218e-4 + (0.90900994316429008631e-7 + (0.56486134972616465316e-9 + (0.31698707080033956934e-11 + 0.15825697795555555556e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.39, 0.40).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p39( t ) {\n\treturn 0.90908120182172748487e-1 + (0.18544478050657699758e-2 + (0.13903663143426120077e-4 + (0.95549246062549906177e-7 + (0.59752787125242054315e-9 + (0.33656597366099099413e-11 + 0.16815130613333333333e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.40, 0.41).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p40( t ) {\n\treturn 0.94673404508075481121e-1 + (0.19112284419887303347e-2 + (0.14491572616545004930e-4 + (0.10046682186333613697e-6 + (0.63221272959791000515e-9 + (0.35736693975589130818e-11 + 0.17862931591111111111e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.41, 0.42).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p41( t ) {\n\treturn 0.98554641648004456555e-1 + (0.19704208544725622126e-2 + (0.15109836875625443935e-4 + (0.10567036667675984067e-6 + (0.66904168640019354565e-9 + (0.37946171850824333014e-11 + 0.18971959040000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.42, 0.43).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p42( t ) {\n\treturn 0.10255677889470089531e0 + (0.20321499629472857418e-2 + (0.15760224242962179564e-4 + (0.11117756071353507391e-6 + (0.70814785110097658502e-9 + (0.40292553276632563925e-11 + 0.20145143075555555556e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.43, 0.44).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p43( t ) {\n\treturn 0.10668502059865093318e0 + (0.20965479776148731610e-2 + (0.16444612377624983565e-4 + (0.11700717962026152749e-6 + (0.74967203250938418991e-9 + (0.42783716186085922176e-11 + 0.21385479360000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.44, 0.45).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p44( t ) {\n\treturn 0.11094484319386444474e0 + (0.21637548491908170841e-2 + (0.17164995035719657111e-4 + (0.12317915750735938089e-6 + (0.79376309831499633734e-9 + (0.45427901763106353914e-11 + 0.22696025653333333333e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.45, 0.46).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p45( t ) {\n\treturn 0.11534201115268804714e0 + (0.22339187474546420375e-2 + (0.17923489217504226813e-4 + (0.12971465288245997681e-6 + (0.84057834180389073587e-9 + (0.48233721206418027227e-11 + 0.24079890062222222222e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.46, 0.47).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p46( t ) {\n\treturn 0.11988259392684094740e0 + (0.23071965691918689601e-2 + (0.18722342718958935446e-4 + (0.13663611754337957520e-6 + (0.89028385488493287005e-9 + (0.51210161569225846701e-11 + 0.25540227111111111111e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.47, 0.48).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p47( t ) {\n\treturn 0.12457298393509812907e0 + (0.23837544771809575380e-2 + (0.19563942105711612475e-4 + (0.14396736847739470782e-6 + (0.94305490646459247016e-9 + (0.54366590583134218096e-11 + 0.27080225920000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.48, 0.49).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p48( t ) {\n\treturn 0.12941991566142438816e0 + (0.24637684719508859484e-2 + (0.20450821127475879816e-4 + (0.15173366280523906622e-6 + (0.99907632506389027739e-9 + (0.57712760311351625221e-11 + 0.28703099555555555556e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.49, 0.50).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p49( t ) {\n\treturn 0.13443048593088696613e0 + (0.25474249981080823877e-2 + (0.21385669591362915223e-4 + (0.15996177579900443030e-6 + (0.10585428844575134013e-8 + (0.61258809536787882989e-11 + 0.30412080142222222222e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.50, 0.51).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p50( t ) {\n\treturn 0.13961217543434561353e0 + (0.26349215871051761416e-2 + (0.22371342712572567744e-4 + (0.16868008199296822247e-6 + (0.11216596910444996246e-8 + (0.65015264753090890662e-11 + 0.32210394506666666666e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.51, 0.52).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p51( t ) {\n\treturn 0.14497287157673800690e0 + (0.27264675383982439814e-2 + (0.23410870961050950197e-4 + (0.17791863939526376477e-6 + (0.11886425714330958106e-8 + (0.68993039665054288034e-11 + 0.34101266222222222221e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.52, 0.53).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p52( t ) {\n\treturn 0.15052089272774618151e0 + (0.28222846410136238008e-2 + (0.24507470422713397006e-4 + (0.18770927679626136909e-6 + (0.12597184587583370712e-8 + (0.73203433049229821618e-11 + 0.36087889048888888890e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.53, 0.54).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p53( t ) {\n\treturn 0.15626501395774612325e0 + (0.29226079376196624949e-2 + (0.25664553693768450545e-4 + (0.19808568415654461964e-6 + (0.13351257759815557897e-8 + (0.77658124891046760667e-11 + 0.38173420035555555555e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.54, 0.55).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p54( t ) {\n\treturn 0.16221449434620737567e0 + (0.30276865332726475672e-2 + (0.26885741326534564336e-4 + (0.20908350604346384143e-6 + (0.14151148144240728728e-8 + (0.82369170665974313027e-11 + 0.40360957457777777779e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.55, 0.56).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p55( t ) {\n\treturn 0.16837910595412130659e0 + (0.31377844510793082301e-2 + (0.28174873844911175026e-4 + (0.22074043807045782387e-6 + (0.14999481055996090039e-8 + (0.87348993661930809254e-11 + 0.42653528977777777779e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.56, 0.57).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p56( t ) {\n\treturn 0.17476916455659369953e0 + (0.32531815370903068316e-2 + (0.29536024347344364074e-4 + (0.23309632627767074202e-6 + (0.15899007843582444846e-8 + (0.92610375235427359475e-11 + 0.45054073102222222221e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.57, 0.58).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p57( t ) {\n\treturn 0.18139556223643701364e0 + (0.33741744168096996041e-2 + (0.30973511714709500836e-4 + (0.24619326937592290996e-6 + (0.16852609412267750744e-8 + (0.98166442942854895573e-11 + 0.47565418097777777779e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.58, 0.59).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p58( t ) {\n\treturn 0.18826980194443664549e0 + (0.35010775057740317997e-2 + (0.32491914440014267480e-4 + (0.26007572375886319028e-6 + (0.17863299617388376116e-8 + (0.10403065638343878679e-10 + 0.50190265831111111110e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.59, 0.60).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p59( t ) {\n\treturn 0.19540403413693967350e0 + (0.36342240767211326315e-2 + (0.34096085096200907289e-4 + (0.27479061117017637474e-6 + (0.18934228504790032826e-8 + (0.11021679075323598664e-10 + 0.52931171733333333334e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.60, 0.61).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p60( t ) {\n\treturn 0.20281109560651886959e0 + (0.37739673859323597060e-2 + (0.35791165457592409054e-4 + (0.29038742889416172404e-6 + (0.20068685374849001770e-8 + (0.11673891799578381999e-10 + 0.55790523093333333334e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.61, 0.62).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p61( t ) {\n\treturn 0.21050455062669334978e0 + (0.39206818613925652425e-2 + (0.37582602289680101704e-4 + (0.30691836231886877385e-6 + (0.21270101645763677824e-8 + (0.12361138551062899455e-10 + 0.58770520160000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.62, 0.63).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p62( t ) {\n\treturn 0.21849873453703332479e0 + (0.40747643554689586041e-2 + (0.39476163820986711501e-4 + (0.32443839970139918836e-6 + (0.22542053491518680200e-8 + (0.13084879235290858490e-10 + 0.61873153262222222221e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.63, 0.64).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p63( t ) {\n\treturn 0.22680879990043229327e0 + (0.42366354648628516935e-2 + (0.41477956909656896779e-4 + (0.34300544894502810002e-6 + (0.23888264229264067658e-8 + (0.13846596292818514601e-10 + 0.65100183751111111110e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.64, 0.65).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p64( t ) {\n\treturn 0.23545076536988703937e0 + (0.44067409206365170888e-2 + (0.43594444916224700881e-4 + (0.36268045617760415178e-6 + (0.25312606430853202748e-8 + (0.14647791812837903061e-10 + 0.68453122631111111110e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.65, 0.66).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p65( t ) {\n\treturn 0.24444156740777432838e0 + (0.45855530511605787178e-2 + (0.45832466292683085475e-4 + (0.38352752590033030472e-6 + (0.26819103733055603460e-8 + (0.15489984390884756993e-10 + 0.71933206364444444445e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.66, 0.67).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p66( t ) {\n\treturn 0.25379911500634264643e0 + (0.47735723208650032167e-2 + (0.48199253896534185372e-4 + (0.40561404245564732314e-6 + (0.28411932320871165585e-8 + (0.16374705736458320149e-10 + 0.75541379822222222221e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.67, 0.68).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p67( t ) {\n\treturn 0.26354234756393613032e0 + (0.49713289477083781266e-2 + (0.50702455036930367504e-4 + (0.42901079254268185722e-6 + (0.30095422058900481753e-8 + (0.17303497025347342498e-10 + 0.79278273368888888890e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.68, 0.69).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p68( t ) {\n\treturn 0.27369129607732343398e0 + (0.51793846023052643767e-2 + (0.53350152258326602629e-4 + (0.45379208848865015485e-6 + (0.31874057245814381257e-8 + (0.18277905010245111046e-10 + 0.83144182364444444445e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.69, 0.70).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p69( t ) {\n\treturn 0.28426714781640316172e0 + (0.53983341916695141966e-2 + (0.56150884865255810638e-4 + (0.48003589196494734238e-6 + (0.33752476967570796349e-8 + (0.19299477888083469086e-10 + 0.87139049137777777779e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.70, 0.71).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p70( t ) {\n\treturn 0.29529231465348519920e0 + (0.56288077305420795663e-2 + (0.59113671189913307427e-4 + (0.50782393781744840482e-6 + (0.35735475025851713168e-8 + (0.20369760937017070382e-10 + 0.91262442613333333334e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.71, 0.72).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p71( t ) {\n\treturn 0.30679050522528838613e0 + (0.58714723032745403331e-2 + (0.62248031602197686791e-4 + (0.53724185766200945789e-6 + (0.37827999418960232678e-8 + (0.21490291930444538307e-10 + 0.95513539182222222221e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.72, 0.73).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p72( t ) {\n\treturn 0.31878680111173319425e0 + (0.61270341192339103514e-2 + (0.65564012259707640976e-4 + (0.56837930287837738996e-6 + (0.40035151353392378882e-8 + (0.22662596341239294792e-10 + 0.99891109760000000000e-13 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.73, 0.74).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p73( t ) {\n\treturn 0.33130773722152622027e0 + (0.63962406646798080903e-2 + (0.69072209592942396666e-4 + (0.60133006661885941812e-6 + (0.42362183765883466691e-8 + (0.23888182347073698382e-10 + 0.10439349811555555556e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.74, 0.75).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p74( t ) {\n\treturn 0.34438138658041336523e0 + (0.66798829540414007258e-2 + (0.72783795518603561144e-4 + (0.63619220443228800680e-6 + (0.44814499336514453364e-8 + (0.25168535651285475274e-10 + 0.10901861383111111111e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.75, 0.76).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p75( t ) {\n\treturn 0.35803744972380175583e0 + (0.69787978834882685031e-2 + (0.76710543371454822497e-4 + (0.67306815308917386747e-6 + (0.47397647975845228205e-8 + (0.26505114141143050509e-10 + 0.11376390933333333333e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.76, 0.77).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p76( t ) {\n\treturn 0.37230734890119724188e0 + (0.72938706896461381003e-2 + (0.80864854542670714092e-4 + (0.71206484718062688779e-6 + (0.50117323769745883805e-8 + (0.27899342394100074165e-10 + 0.11862637614222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.77, 0.78).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p77( t ) {\n\treturn 0.38722432730555448223e0 + (0.76260375162549802745e-2 + (0.85259785810004603848e-4 + (0.75329383305171327677e-6 + (0.52979361368388119355e-8 + (0.29352606054164086709e-10 + 0.12360253370666666667e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.78, 0.79).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p78( t ) {\n\treturn 0.40282355354616940667e0 + (0.79762880915029728079e-2 + (0.89909077342438246452e-4 + (0.79687137961956194579e-6 + (0.55989731807360403195e-8 + (0.30866246101464869050e-10 + 0.12868841946666666667e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.79, 0.80).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p79( t ) {\n\treturn 0.41914223158913787649e0 + (0.83456685186950463538e-2 + (0.94827181359250161335e-4 + (0.84291858561783141014e-6 + (0.59154537751083485684e-8 + (0.32441553034347469291e-10 + 0.13387957943111111111e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.80, 0.81).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p80( t ) {\n\treturn 0.43621971639463786896e0 + (0.87352841828289495773e-2 + (0.10002929142066799966e-3 + (0.89156148280219880024e-6 + (0.62480008150788597147e-8 + (0.34079760983458878910e-10 + 0.13917107176888888889e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.81, 0.82).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p81( t ) {\n\treturn 0.45409763548534330981e0 + (0.91463027755548240654e-2 + (0.10553137232446167258e-3 + (0.94293113464638623798e-6 + (0.65972492312219959885e-8 + (0.35782041795476563662e-10 + 0.14455745872000000000e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.82, 0.83).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p82( t ) {\n\treturn 0.47282001668512331468e0 + (0.95799574408860463394e-2 + (0.11135019058000067469e-3 + (0.99716373005509038080e-6 + (0.69638453369956970347e-8 + (0.37549499088161345850e-10 + 0.15003280712888888889e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.83, 0.84).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p83( t ) {\n\treturn 0.49243342227179841649e0 + (0.10037550043909497071e-1 + (0.11750334542845234952e-3 + (0.10544006716188967172e-5 + (0.73484461168242224872e-8 + (0.39383162326435752965e-10 + 0.15559069118222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.84, 0.85).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p84( t ) {\n\treturn 0.51298708979209258326e0 + (0.10520454564612427224e-1 + (0.12400930037494996655e-3 + (0.11147886579371265246e-5 + (0.77517184550568711454e-8 + (0.41283980931872622611e-10 + 0.16122419680000000000e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.85, 0.86).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p85( t ) {\n\treturn 0.53453307979101369843e0 + (0.11030120618800726938e-1 + (0.13088741519572269581e-3 + (0.11784797595374515432e-5 + (0.81743383063044825400e-8 + (0.43252818449517081051e-10 + 0.16692592640000000000e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.86, 0.87).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p86( t ) {\n\treturn 0.55712643071169299478e0 + (0.11568077107929735233e-1 + (0.13815797838036651289e-3 + (0.12456314879260904558e-5 + (0.86169898078969313597e-8 + (0.45290446811539652525e-10 + 0.17268801084444444444e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.87, 0.88).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p87( t ) {\n\treturn 0.58082532122519320968e0 + (0.12135935999503877077e-1 + (0.14584223996665838559e-3 + (0.13164068573095710742e-5 + (0.90803643355106020163e-8 + (0.47397540713124619155e-10 + 0.17850211608888888889e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.88, 0.89).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p88( t ) {\n\treturn 0.60569124025293375554e0 + (0.12735396239525550361e-1 + (0.15396244472258863344e-3 + (0.13909744385382818253e-5 + (0.95651595032306228245e-8 + (0.49574672127669041550e-10 + 0.18435945564444444444e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.89, 0.90).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p89( t ) {\n\treturn 0.63178916494715716894e0 + (0.13368247798287030927e-1 + (0.16254186562762076141e-3 + (0.14695084048334056083e-5 + (0.10072078109604152350e-7 + (0.51822304995680707483e-10 + 0.19025081422222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.90, 0.91).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p90( t ) {\n\treturn 0.65918774689725319200e0 + (0.14036375850601992063e-1 + (0.17160483760259706354e-3 + (0.15521885688723188371e-5 + (0.10601827031535280590e-7 + (0.54140790105837520499e-10 + 0.19616655146666666667e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.91, 0.92).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p91( t ) {\n\treturn 0.68795950683174433822e0 + (0.14741765091365869084e-1 + (0.18117679143520433835e-3 + (0.16392004108230585213e-5 + (0.11155116068018043001e-7 + (0.56530360194925690374e-10 + 0.20209663662222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.92, 0.93).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p92( t ) {\n\treturn 0.71818103808729967036e0 + (0.15486504187117112279e-1 + (0.19128428784550923217e-3 + (0.17307350969359975848e-5 + (0.11732656736113607751e-7 + (0.58991125287563833603e-10 + 0.20803065333333333333e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.93, 0.94).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p93( t ) {\n\treturn 0.74993321911726254661e0 + (0.16272790364044783382e-1 + (0.20195505163377912645e-3 + (0.18269894883203346953e-5 + (0.12335161021630225535e-7 + (0.61523068312169087227e-10 + 0.21395783431111111111e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.94, 0.95).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p94( t ) {\n\treturn 0.78330143531283492729e0 + (0.17102934132652429240e-1 + (0.21321800585063327041e-3 + (0.19281661395543913713e-5 + (0.12963340087354341574e-7 + (0.64126040998066348872e-10 + 0.21986708942222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.95, 0.96).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p95( t ) {\n\treturn 0.81837581041023811832e0 + (0.17979364149044223802e-1 + (0.22510330592753129006e-3 + (0.20344732868018175389e-5 + (0.13617902941839949718e-7 + (0.66799760083972474642e-10 + 0.22574701262222222222e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.96, 0.97).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p96( t ) {\n\treturn 0.85525144775685126237e0 + (0.18904632212547561026e-1 + (0.23764237370371255638e-3 + (0.21461248251306387979e-5 + (0.14299555071870523786e-7 + (0.69543803864694171934e-10 + 0.23158593688888888889e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.97, 0.98).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p97( t ) {\n\treturn 0.89402868170849933734e0 + (0.19881418399127202569e-1 + (0.25086793128395995798e-3 + (0.22633402747585233180e-5 + (0.15008997042116532283e-7 + (0.72357609075043941261e-10 + 0.23737194737777777778e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.98, 0.99).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p98( t ) {\n\treturn 0.93481333942870796363e0 + (0.20912536329780368893e-1 + (0.26481403465998477969e-3 + (0.23863447359754921676e-5 + (0.15746923065472184451e-7 + (0.75240468141720143653e-10 + 0.24309291271111111111e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for \\[0.99, 1.00).\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p99( t ) {\n\treturn 0.97771701335885035464e0 + (0.22000938572830479551e-1 + (0.27951610702682383001e-3 + (0.25153688325245314530e-5 + (0.16514019547822821453e-7 + (0.78191526829368231251e-10 + 0.24873652355555555556e-12 * t) * t) * t) * t) * t) * t;\n}\n\n/**\n* Chebyshev polynomial for `1.0`.\n*\n* @private\n* @param {number} t - scaled value\n* @returns {number} result\n*/\nfunction p100() {\n\t// We only get here if y = 1; i.e., |x| < 4*eps, in which case `erfcx` is within `1e-15` of 1...\n\treturn 1.0;\n}\n\n\n// MAIN //\n\n/**\n* Given `y100 = 100*y`, where `y = 4/(4+x)` for `x >= 0`, compute `erfc(x)`.\n*\n* ## Notes\n*\n* - Uses a look-up table of 100 different Chebyshev polynomials or y intervals \\[0,0.01\\], \\[0.01,0.02\\], ..., \\[0.99,1\\], generated with the help of Maple and a little shell script.\n* - This allows the Chebyshev polynomials to be of significantly lower degree (about 1/4) compared to fitting the whole \\[0,1\\] interval with a single polynomial.\n*\n* @private\n* @param {number} y100 - scaled argument\n* @returns {number} complementary error function\n*/\nfunction erfcxY100( y100 ) {\n\tvar t = floor( y100 );\n\tvar f = table[ t ];\n\treturn f( 2*y100 - ((2*t) + 1) );\n}\n\n\n// EXPORTS //\n\nexport default erfcxY100;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n* ## Notice\n*\n* The following copyright, license, and long comment were part of the original implementation available as part of [SciPy]{@link https://github.com/scipy/scipy/blob/ed14bf0a66440a4d164581499fda662121963a56/scipy/special/Faddeeva.cc}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright (c) 2012 Massachusetts Institute of Technology\n*\n* Permission is hereby granted, free of charge, to any person obtaining\n* a copy of this software and associated documentation files (the\n* \"Software\"), to deal in the Software without restriction, including\n* without limitation the rights to use, copy, modify, merge, publish,\n* distribute, sublicense, and/or sell copies of the Software, and to\n* permit persons to whom the Software is furnished to do so, subject to\n* the following conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport isnan from './../../../../base/assert/is-nan';\nimport erfcxY100 from './erfcx_y100.js';\n\n\n// VARIABLES //\n\nvar INV_SQRT_PI = 0.56418958354775628694807945156; // 1 / sqrt(pi)\n\n\n// MAIN //\n\n/**\n* Evaluates the scaled complementary error function.\n*\n* ```tex\n* \\operatorname{erfcx}(x) = \\exp{x^2} \\cdot \\operatorname{erfc}(x)\n* ```\n*\n* ## Notes\n*\n* - Use this function to replace expressions containing `exp{x^2} erfc(x)` in order to avoid errors due to underflow or overflow.\n* - For expressions of the form `\\exp{-x^2} erfcx(x)`, use the complementary error function `erfc(x)` instead, as this substitution maintains accuracy by avoiding roundoff errors for large values of `x`.\n*\n* @param {number} x - input value\n* @returns {number} evaluated scaled complementary error function\n*\n* @example\n* var y = erfcx( 0.0 );\n* // returns 1.0\n*\n* @example\n* var y = erfcx( 1.0 );\n* // returns ~0.4276\n*\n* @example\n* var y = erfcx( -1.0 );\n* // returns ~5.01\n*\n* @example\n* var y = erfcx( 50.0 );\n* // returns ~0.011\n*\n* @example\n* var y = erfcx( -50.0 );\n* // returns +Infinity\n*\n* @example\n* var y = erfcx( NaN );\n* // returns NaN\n*/\nfunction erfcx( x ) {\n\tvar x2;\n\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x >= 0.0 ) {\n\t\tif ( x > 50.0 ) { // continued-fraction expansion is faster\n\t\t\tif ( x > 5.0e7 ) { // 1-term expansion, important to avoid overflow\n\t\t\t\treturn INV_SQRT_PI / x;\n\t\t\t}\n\t\t\tx2 = x * x;\n\n\t\t\t// 5-term expansion (rely on compiler for CSE), simplified from: INV_SQRT_PI / (x+0.5/(x+1/(x+1.5/(x+2/x))))\n\t\t\treturn INV_SQRT_PI * ( ( x2 * (x2+4.5) ) + 2.0 ) / ( x * ( ( x2*(x2+5.0) ) + 3.75 ) ); // eslint-disable-line max-len\n\t\t}\n\t\treturn erfcxY100( 400.0/(4.0+x) );\n\t}\n\tif ( x < -26.7 ) {\n\t\treturn PINF;\n\t}\n\tx2 = x * x;\n\tif ( x < -6.1 ) {\n\t\treturn 2.0 * exp( x2 );\n\t}\n\treturn ( 2.0*exp( x2 ) ) - erfcxY100( 400.0/(4.0-x) );\n}\n\n\n// EXPORTS //\n\nexport default erfcx;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_48_0/boost/math/special_functions/detail/erf_inv.hpp}. This implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport sqrt from './../../../../base/special/sqrt';\nimport ln from './../../../../base/special/ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport rationalFcnR1 from './rational_p1q1.js';\nimport rationalFcnR2 from './rational_p2q2.js';\nimport rationalFcnR3 from './rational_p3q3.js';\nimport rationalFcnR4 from './rational_p4q4.js';\nimport rationalFcnR5 from './rational_p5q5.js';\n\n\n// VARIABLES //\n\nvar Y1 = 8.91314744949340820313e-2;\nvar Y2 = 2.249481201171875;\nvar Y3 = 8.07220458984375e-1;\nvar Y4 = 9.3995571136474609375e-1;\nvar Y5 = 9.8362827301025390625e-1;\n\n\n// MAIN //\n\n/**\n* Evaluates the inverse error function.\n*\n* ## Method\n*\n* 1. For \\\\(|x| \\leq 0.5\\\\), we evaluate the inverse error function using the rational approximation\n*\n* ```tex\n* \\operatorname{erf^{-1}}(x) = x(x+10)(\\mathrm{Y} + \\operatorname{R}(x))\n* ```\n*\n* where \\\\(Y\\\\) is a constant and \\\\(\\operatorname{R}(x)\\\\) is optimized for a low absolute error compared to \\\\(|Y|\\\\).\n*\n* \n*\n* Max error \\\\(2.001849\\mbox{e-}18\\\\). Maximum deviation found (error term at infinite precision) \\\\(8.030\\mbox{e-}21\\\\).\n*\n* \n*\n* 2. For \\\\(0.5 > 1-|x| \\geq 0\\\\), we evaluate the inverse error function using the rational approximation\n*\n* ```tex\n* \\operatorname{erf^{-1}} = \\frac{\\sqrt{-2 \\cdot \\ln(1-x)}}{\\mathrm{Y} + \\operatorname{R}(1-x)}\n* ```\n*\n* where \\\\(Y\\\\) is a constant, and \\\\(\\operatorname{R}(q)\\\\) is optimized for a low absolute error compared to \\\\(Y\\\\).\n*\n* \n*\n* Max error \\\\(7.403372\\mbox{e-}17\\\\). Maximum deviation found (error term at infinite precision) \\\\(4.811\\mbox{e-}20\\\\).\n*\n* \n*\n* 3. For \\\\(1-|x| < 0.25\\\\), we have a series of rational approximations all of the general form\n*\n* ```tex\n* p = \\sqrt{-\\ln(1-x)}\n* ```\n*\n* Accordingly, the result is given by\n*\n* ```tex\n* \\operatorname{erf^{-1}}(x) = p(\\mathrm{Y} + \\operatorname{R}(p-B))\n* ```\n*\n* where \\\\(Y\\\\) is a constant, \\\\(B\\\\) is the lowest value of \\\\(p\\\\) for which the approximation is valid, and \\\\(\\operatorname{R}(x-B)\\\\) is optimized for a low absolute error compared to \\\\(Y\\\\).\n*\n* \n*\n* Almost all code will only go through the first or maybe second approximation. After that we are dealing with very small input values.\n*\n* - If \\\\(p < 3\\\\), max error \\\\(1.089051\\mbox{e-}20\\\\).\n* - If \\\\(p < 6\\\\), max error \\\\(8.389174\\mbox{e-}21\\\\).\n* - If \\\\(p < 18\\\\), max error \\\\(1.481312\\mbox{e-}19\\\\).\n* - If \\\\(p < 44\\\\), max error \\\\(5.697761\\mbox{e-}20\\\\).\n* - If \\\\(p \\geq 44\\\\), max error \\\\(1.279746\\mbox{e-}20\\\\).\n*\n* \n*\n* \n*\n* The Boost library can accommodate \\\\(80\\\\) and \\\\(128\\\\) bit long doubles. JavaScript only supports a \\\\(64\\\\) bit double (IEEE 754). Accordingly, the smallest \\\\(p\\\\) (in JavaScript at the time of this writing) is \\\\(\\sqrt{-\\ln(\\sim5\\mbox{e-}324)} = 27.284429111150214\\\\).\n*\n* \n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = erfinv( 0.5 );\n* // returns ~0.4769\n*\n* @example\n* var y = erfinv( 0.8 );\n* // returns ~0.9062\n*\n* @example\n* var y = erfinv( 0.0 );\n* // returns 0.0\n*\n* @example\n* var y = erfinv( -0.0 );\n* // returns -0.0\n*\n* @example\n* var y = erfinv( -1.0 );\n* // returns -Infinity\n*\n* @example\n* var y = erfinv( 1.0 );\n* // returns Infinity\n*\n* @example\n* var y = erfinv( NaN );\n* // returns NaN\n*/\nfunction erfinv( x ) {\n\tvar sign;\n\tvar ax;\n\tvar qs;\n\tvar q;\n\tvar g;\n\tvar r;\n\n\t// Special case: NaN\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\t// Special case: 1\n\tif ( x === 1.0 ) {\n\t\treturn PINF;\n\t}\n\t// Special case: -1\n\tif ( x === -1.0 ) {\n\t\treturn NINF;\n\t}\n\t// Special case: +-0\n\tif ( x === 0.0 ) {\n\t\treturn x;\n\t}\n\t// Special case: |x| > 1 (range error)\n\tif ( x > 1.0 || x < -1.0 ) {\n\t\treturn NaN;\n\t}\n\t// Argument reduction (reduce to interval [0,1]). If `x` is negative, we can safely negate the value, taking advantage of the error function being an odd function; i.e., `erf(-x) = -erf(x)`.\n\tif ( x < 0.0 ) {\n\t\tsign = -1.0;\n\t\tax = -x;\n\t} else {\n\t\tsign = 1.0;\n\t\tax = x;\n\t}\n\tq = 1.0 - ax;\n\n\t// |x| <= 0.5\n\tif ( ax <= 0.5 ) {\n\t\tg = ax * ( ax + 10.0 );\n\t\tr = rationalFcnR1( ax );\n\t\treturn sign * ( (g*Y1) + (g*r) );\n\t}\n\t// 1-|x| >= 0.25\n\tif ( q >= 0.25 ) {\n\t\tg = sqrt( -2.0 * ln(q) );\n\t\tq -= 0.25;\n\t\tr = rationalFcnR2( q );\n\t\treturn sign * ( g / (Y2+r) );\n\t}\n\tq = sqrt( -ln( q ) );\n\n\t// q < 3\n\tif ( q < 3.0 ) {\n\t\tqs = q - 1.125;\n\t\tr = rationalFcnR3( qs );\n\t\treturn sign * ( (Y3*q) + (r*q) );\n\t}\n\t// q < 6\n\tif ( q < 6.0 ) {\n\t\tqs = q - 3.0;\n\t\tr = rationalFcnR4( qs );\n\t\treturn sign * ( (Y4*q) + (r*q) );\n\t}\n\t// q < 18\n\tqs = q - 6.0;\n\tr = rationalFcnR5( qs );\n\treturn sign * ( (Y5*q) + (r*q) );\n}\n\n\n// EXPORTS //\n\nexport default erfinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0005087819496582806;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0005087819496582806 + (x * (-0.008368748197417368 + (x * (0.03348066254097446 + (x * (-0.012692614766297404 + (x * (-0.03656379714117627 + (x * (0.02198786811111689 + (x * (0.008226878746769157 + (x * (-0.005387729650712429 + (x * (0.0 + (x * 0.0))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (-0.9700050433032906 + (x * (-1.5657455823417585 + (x * (1.5622155839842302 + (x * (0.662328840472003 + (x * (-0.7122890234154284 + (x * (-0.05273963823400997 + (x * (0.07952836873415717 + (x * (-0.0023339375937419 + (x * 0.0008862163904564247))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0 + (x * (-0.005387729650712429 + (x * (0.008226878746769157 + (x * (0.02198786811111689 + (x * (-0.03656379714117627 + (x * (-0.012692614766297404 + (x * (0.03348066254097446 + (x * (-0.008368748197417368 + (x * -0.0005087819496582806))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0008862163904564247 + (x * (-0.0023339375937419 + (x * (0.07952836873415717 + (x * (-0.05273963823400997 + (x * (-0.7122890234154284 + (x * (0.662328840472003 + (x * (1.5622155839842302 + (x * (-1.5657455823417585 + (x * (-0.9700050433032906 + (x * 1.0))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.20243350835593876;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.20243350835593876 + (x * (0.10526468069939171 + (x * (8.3705032834312 + (x * (17.644729840837403 + (x * (-18.851064805871424 + (x * (-44.6382324441787 + (x * (17.445385985570866 + (x * (21.12946554483405 + (x * -3.6719225470772936))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (6.242641248542475 + (x * (3.971343795334387 + (x * (-28.66081804998 + (x * (-20.14326346804852 + (x * (48.560921310873994 + (x * (10.826866735546016 + (x * (-22.643693341313973 + (x * 1.7211476576120028))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -3.6719225470772936 + (x * (21.12946554483405 + (x * (17.445385985570866 + (x * (-44.6382324441787 + (x * (-18.851064805871424 + (x * (17.644729840837403 + (x * (8.3705032834312 + (x * (0.10526468069939171 + (x * -0.20243350835593876))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.7211476576120028 + (x * (-22.643693341313973 + (x * (10.826866735546016 + (x * (48.560921310873994 + (x * (-20.14326346804852 + (x * (-28.66081804998 + (x * (3.971343795334387 + (x * (6.242641248542475 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.1311027816799519;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.1311027816799519 + (x * (-0.16379404719331705 + (x * (0.11703015634199525 + (x * (0.38707973897260434 + (x * (0.3377855389120359 + (x * (0.14286953440815717 + (x * (0.029015791000532906 + (x * (0.0021455899538880526 + (x * (-6.794655751811263e-7 + (x * (2.8522533178221704e-8 + (x * -6.81149956853777e-10))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (3.4662540724256723 + (x * (5.381683457070069 + (x * (4.778465929458438 + (x * (2.5930192162362027 + (x * (0.848854343457902 + (x * (0.15226433829533179 + (x * (0.011059242293464892 + (x * (0.0 + (x * (0.0 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = -6.81149956853777e-10 + (x * (2.8522533178221704e-8 + (x * (-6.794655751811263e-7 + (x * (0.0021455899538880526 + (x * (0.029015791000532906 + (x * (0.14286953440815717 + (x * (0.3377855389120359 + (x * (0.38707973897260434 + (x * (0.11703015634199525 + (x * (-0.16379404719331705 + (x * -0.1311027816799519))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (0.0 + (x * (0.011059242293464892 + (x * (0.15226433829533179 + (x * (0.848854343457902 + (x * (2.5930192162362027 + (x * (4.778465929458438 + (x * (5.381683457070069 + (x * (3.4662540724256723 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.0350353787183178;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.0350353787183178 + (x * (-0.0022242652921344794 + (x * (0.018557330651423107 + (x * (0.009508047013259196 + (x * (0.0018712349281955923 + (x * (0.00015754461742496055 + (x * (0.00000460469890584318 + (x * (-2.304047769118826e-10 + (x * 2.6633922742578204e-12))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.3653349817554064 + (x * (0.7620591645536234 + (x * (0.22009110576413124 + (x * (0.03415891436709477 + (x * (0.00263861676657016 + (x * (0.00007646752923027944 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 2.6633922742578204e-12 + (x * (-2.304047769118826e-10 + (x * (0.00000460469890584318 + (x * (0.00015754461742496055 + (x * (0.0018712349281955923 + (x * (0.009508047013259196 + (x * (0.018557330651423107 + (x * (-0.0022242652921344794 + (x * -0.0350353787183178))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (0.00007646752923027944 + (x * (0.00263861676657016 + (x * (0.03415891436709477 + (x * (0.22009110576413124 + (x * (0.7620591645536234 + (x * (1.3653349817554064 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.016743100507663373;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.016743100507663373 + (x * (-0.0011295143874558028 + (x * (0.001056288621524929 + (x * (0.00020938631748758808 + (x * (0.000014962478375834237 + (x * (4.4969678992770644e-7 + (x * (4.625961635228786e-9 + (x * (-2.811287356288318e-14 + (x * 9.905570997331033e-17))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.5914293448864175 + (x * (0.1381518657490833 + (x * (0.016074608709367652 + (x * (0.0009640118070051656 + (x * (0.000027533547476472603 + (x * (2.82243172016108e-7 + (x * (0.0 + (x * 0.0))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 9.905570997331033e-17 + (x * (-2.811287356288318e-14 + (x * (4.625961635228786e-9 + (x * (4.4969678992770644e-7 + (x * (0.000014962478375834237 + (x * (0.00020938631748758808 + (x * (0.001056288621524929 + (x * (-0.0011295143874558028 + (x * -0.016743100507663373))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.0 + (x * (0.0 + (x * (2.82243172016108e-7 + (x * (0.000027533547476472603 + (x * (0.0009640118070051656 + (x * (0.016074608709367652 + (x * (0.1381518657490833 + (x * (0.5914293448864175 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1995, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// TODO: replace with TOMS (Openlibm) algo (updating license header and long comment)\n\n// MODULES //\n\nimport FLOAT64_MAX_BASE2_EXPONENT from '@stdlib/constants/float64/max-base2-exponent'; // eslint-disable-line id-length\nimport FLOAT64_MIN_BASE2_EXPONENT from '@stdlib/constants/float64/min-base2-exponent'; // eslint-disable-line id-length\nimport round from './../../../../base/special/round';\nimport ldexp from './../../../../base/special/ldexp';\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport polyvalP from './polyval_p.js';\nimport polyvalQ from './polyval_q.js';\n\n\n// MAIN //\n\n/**\n* Evaluates the base `2` exponential function.\n*\n* ## Method\n*\n* - Range reduction is accomplished by separating the argument into an integer \\\\( k \\\\) and fraction \\\\( f \\\\) such that\n*\n* ```tex\n* 2^x = 2^k 2^f\n* ```\n*\n* - A Pade' approximate\n*\n* ```tex\n* 1 + 2x \\frac{\\mathrm{P}\\left(x^2\\right)}{\\mathrm{Q}\\left(x^2\\right) - x \\mathrm{P}\\left(x^2\\right)}\n* ```\n*\n* approximates \\\\( 2^x \\\\) in the basic range \\\\( \\[-0.5, 0.5] \\\\).\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:-----------:|:--------:|:-------:|:-------:|\n* | IEEE | -1022,+1024 | 30000 | 1.8e-16 | 5.4e-17 |\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = exp2( 3.0 );\n* // returns 8.0\n*\n* @example\n* var v = exp2( -9.0 );\n* // returns ~0.002\n*\n* @example\n* var v = exp2( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = exp2( NaN );\n* // returns NaN\n*/\nfunction exp2( x ) {\n\tvar px;\n\tvar xx;\n\tvar n;\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x > FLOAT64_MAX_BASE2_EXPONENT ) {\n\t\treturn PINF;\n\t}\n\tif ( x < FLOAT64_MIN_BASE2_EXPONENT ) {\n\t\treturn 0.0;\n\t}\n\t// Separate into integer and fractional parts...\n\tn = round( x );\n\tx -= n;\n\n\txx = x * x;\n\tpx = x * polyvalP( xx );\n\tx = px / ( polyvalQ( xx ) - px );\n\tx = 1.0 + ldexp( x, 1 );\n\n\t// Scale by power of 2:\n\treturn ldexp( x, n );\n}\n\n\n// EXPORTS //\n\nexport default exp2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1513.906801156151;\n\t}\n\treturn 1513.906801156151 + (x * (20.202065669316532 + (x * 0.023093347705734523))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 4368.211668792106;\n\t}\n\treturn 4368.211668792106 + (x * (233.1842117223149 + (x * 1.0)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1991, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\nimport ldexp from './../../../../base/special/ldexp';\nimport isnan from './../../../../base/assert/is-nan';\nimport MAXL10 from '@stdlib/constants/float64/max-base10-exponent';\nimport MINL10 from '@stdlib/constants/float64/min-base10-exponent';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport polyvalP from './polyval_p.js';\nimport polyvalQ from './polyval_q.js';\n\n\n// VARIABLES //\n\nvar LOG210 = 3.32192809488736234787e0;\nvar LG102A = 3.01025390625000000000e-1;\nvar LG102B = 4.60503898119521373889e-6;\n\n\n// MAIN //\n\n/**\n* Returns `10` raised to the `x` power.\n*\n* ## Method\n*\n* - Range reduction is accomplished by expressing the argument as \\\\( 10^x = 2^n 10^f \\\\), with \\\\( |f| < 0.5 log_{10}(2) \\\\). The Pade' form\n*\n* ```tex\n* 1 + 2x \\frac{P(x^2)}{Q(x^2) - P(x^2)}\n* ```\n*\n* is used to approximate \\\\( 10^f \\\\).\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:-----------:|:--------:|:-------:|:-------:|\n* | IEEE | -307,+307 | 30000 | 2.2e-16 | 5.5e-17 |\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = exp10( 3.0 );\n* // returns 1000.0\n*\n* @example\n* var v = exp10( -9.0 );\n* // returns 1.0e-9\n*\n* @example\n* var v = exp10( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = exp10( NaN );\n* // returns NaN\n*/\nfunction exp10( x ) {\n\tvar px;\n\tvar xx;\n\tvar n;\n\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x > MAXL10 ) {\n\t\treturn PINF;\n\t}\n\tif ( x < MINL10 ) {\n\t\treturn 0.0;\n\t}\n\t// Express 10^x = 10^g 2^n = 10^g 10^( n log10(2) ) = 10^( g + n log10(2) )\n\tpx = floor( (LOG210*x) + 0.5 );\n\tn = px;\n\tx -= px * LG102A;\n\tx -= px * LG102B;\n\n\t// Rational approximation for exponential of the fractional part: 10^x = 1 + 2x P(x^2)/( Q(x^2) - P(x^2) )\n\txx = x * x;\n\tpx = x * polyvalP( xx );\n\tx = px / ( polyvalQ( xx ) - px );\n\tx = 1.0 + ldexp( x, 1 );\n\n\t// Multiply by power of 2:\n\treturn ldexp( x, n );\n}\n\n\n// EXPORTS //\n\nexport default exp10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2394.2374120738828;\n\t}\n\treturn 2394.2374120738828 + (x * (406.7172899368727 + (x * (11.745273255434405 + (x * 0.040996251979858706))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 2079.608192860019;\n\t}\n\treturn 2079.608192860019 + (x * (1272.0927117834513 + (x * (85.09361608493066 + (x * 1.0))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport exp from './../../../../base/special/exp';\n\n\n// MAIN //\n\n/**\n* Evaluates the standard logistic function.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var y = expit( 0.0 );\n* // returns 0.5\n*\n* @example\n* var y = expit( 1.0 );\n* // returns ~0.731\n*\n* @example\n* var y = expit( -1.0 );\n* // returns ~0.269\n*\n* @example\n* var y = expit( Infinity );\n* // returns 1.0\n*\n* @example\n* var y = expit( NaN );\n* // returns NaN\n*/\nfunction expit( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\treturn 1.0 / ( 1.0 + exp( -x ) );\n}\n\n\n// EXPORTS //\n\nexport default expit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport expm1 from './../../../../base/special/expm1';\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar OVERFLOW_THRESHOLD = 7.09782712893383973096e+02; // 0x40862E42 0xFEFA39EF\n\n\n// MAIN //\n\n/**\n* Computes the relative error exponential.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = expm1rel( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = expm1rel( 1.0 );\n* // returns ~1.718\n*\n* @example\n* var v = expm1rel( -1.0 );\n* // returns ~0.632\n*\n* @example\n* var v = expm1rel( NaN );\n* // returns NaN\n*/\nfunction expm1rel( x ) {\n\tif ( abs( x ) <= EPS ) {\n\t\treturn 1.0; // L'Hopital's Rule\n\t}\n\tif ( x >= OVERFLOW_THRESHOLD ) {\n\t\treturn PINF; // L'Hopital's Rule\n\t}\n\treturn expm1( x ) / x;\n}\n\n\n// EXPORTS //\n\nexport default expm1rel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeInteger from './../../../../base/assert/is-negative-integer';\nimport gammaln from './../../../../base/special/gammaln';\n\n\n// MAIN //\n\n/**\n* Evaluates the natural logarithm of the factorial of `x`.\n*\n* @param {number} x - input value\n* @returns {number} natural logarithm of factorial of `x`\n*\n* @example\n* var v = factorialln( 3.0 );\n* // returns ~1.792\n*\n* @example\n* var v = factorialln( 2.4 );\n* // returns ~1.092\n*\n* @example\n* var v = factorialln( -1.0 );\n* // returns NaN\n*\n* @example\n* var v = factorialln( -1.5 );\n* // returns ~1.266\n*\n* @example\n* var v = factorialln( NaN );\n* // returns NaN\n*/\nfunction factorialln( x ) {\n\tif ( isNegativeInteger( x ) ) {\n\t\treturn NaN;\n\t}\n\treturn gammaln( x + 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default factorialln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/factorials.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006, 2010.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from './../../../../base/assert/is-nonnegative-integer';\nimport isInteger from './../../../../base/assert/is-integer';\nimport isnan from './../../../../base/assert/is-nan';\nimport gammaDeltaRatio from './../../../../base/special/gamma-delta-ratio';\nimport floor from './../../../../base/special/floor';\nimport abs from './../../../../base/special/abs';\nimport FLOAT64_MAX from '@stdlib/constants/float64/max';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport FLOAT64_MAX_SAFE_NTH_FACTORIAL from '@stdlib/constants/float64/max-safe-nth-factorial'; // eslint-disable-line id-length\n\n\n// FUNCTIONS //\n\n/**\n* Computes the rising factorial of `x` and `n`.\n*\n* ## Notes\n*\n* - The rising factorial is defined as\n*\n* ```tex\n* \\operatorname{risingFactorial}(x, n) = x (x-1) (x-2) (x-3) \\ldots (x-n+1)\n* ```\n*\n* or equivalently\n*\n* ```tex\n* \\operatorname{risingFactorial}(x, n) = \\frac{ \\Gamma(x + n) }{ \\Gamma(x) };\n* ```\n*\n* @private\n* @param {number} x - first function parameter\n* @param {integer} n - second function parameter\n* @returns {number} function value\n*\n* @example\n* var v = risingFactorial( 0.9, 5 );\n* // returns ~94.766\n*\n* @example\n* var v = risingFactorial( -9.0, 3 );\n* // returns -504.0\n*\n* @example\n* var v = risingFactorial( 0.0, 2 );\n* // returns 0.0\n*\n* @example\n* var v = risingFactorial( 3.0, -2 );\n* // returns 0.5\n*/\nfunction risingFactorial( x, n ) {\n\tvar result;\n\tvar inv;\n\n\tif ( isnan( x ) || !isInteger( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x < 0.0 ) {\n\t\t// For `x < 0`, we really have a falling factorial, modulo a possible change of sign. Note that the falling factorial isn't defined for negative `n`, so we'll get rid of that case first:\n\t\tif ( n < 0.0 ) {\n\t\t\tx += n;\n\t\t\tn = -n;\n\t\t\tinv = true;\n\t\t}\n\t\tresult = ( (n&1) ? -1.0 : 1.0 ) * fallingFactorial( -x, n );\n\t\tif ( inv ) {\n\t\t\tresult = 1.0 / result;\n\t\t}\n\t\treturn result;\n\t}\n\tif ( n === 0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x === 0.0 ) {\n\t\tif ( n < 0 ) {\n\t\t\treturn -gammaDeltaRatio( x+1.0, -n );\n\t\t}\n\t\treturn 0.0;\n\t}\n\tif ( x < 1.0 && x+n < 0.0 ) {\n\t\tresult = gammaDeltaRatio( 1.0-x, -n );\n\t\treturn ( n&1 ) ? -result : result;\n\t}\n\t// We don't optimize this for small `n`, because `gammaDeltaRatio` is already optimized for that use case:\n\treturn 1.0 / gammaDeltaRatio( x, n );\n}\n\n\n// MAIN //\n\n/**\n* Computes the falling factorial of `x` and `n`.\n*\n* ## Notes\n*\n* - The falling factorial is defined as\n*\n* ```tex\n* \\operatorname{fallingFactorial}(x, n) = x (x-1) (x-2) (x-3) \\ldots (x-n+1)\n* ```\n*\n* @param {number} x - first function parameter\n* @param {NonNegativeInteger} n - second function parameter\n* @returns {number} function value\n*\n* @example\n* var v = fallingFactorial( 0.9, 5 );\n* // returns ~0.644\n*\n* @example\n* var v = fallingFactorial( -9.0, 3 );\n* // returns -990.0\n*\n* @example\n* var v = fallingFactorial( 0.0, 2 );\n* // returns 0.0\n*\n* @example\n* var v = fallingFactorial( 3.0, -2 );\n* // returns NaN\n*/\nfunction fallingFactorial( x, n ) {\n\tvar result;\n\tvar xp1;\n\tvar n2;\n\tvar t1;\n\tvar t2;\n\n\tif ( isnan( x ) || !isNonNegativeInteger( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\t// For `x < 0`, we really have a rising factorial modulo a possible change of sign:\n\t\treturn ( ( n&1 ) ? -1.0 : 1.0 ) * risingFactorial( -x, n );\n\t}\n\tif ( n === 0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.5 ) {\n\t\t// Computing `1 + x` will throw away digits, so split up calculation...\n\t\tif ( n > FLOAT64_MAX_SAFE_NTH_FACTORIAL-2 ) {\n\t\t\t// Given a ratio of two very large numbers, we need to split the calculation up into two blocks:\n\t\t\tt1 = x * fallingFactorial( x-1.0, FLOAT64_MAX_SAFE_NTH_FACTORIAL-2 ); // eslint-disable-line max-len\n\t\t\tt2 = fallingFactorial( x-FLOAT64_MAX_SAFE_NTH_FACTORIAL+1.0, n-FLOAT64_MAX_SAFE_NTH_FACTORIAL+1 ); // eslint-disable-line max-len\n\t\t\tif ( FLOAT64_MAX/abs(t1) < abs(t2) ) {\n\t\t\t\treturn PINF;\n\t\t\t}\n\t\t\treturn t1 * t2;\n\t\t}\n\t\treturn x * fallingFactorial( x-1.0, n-1.0 );\n\t}\n\tif ( x <= n-1.0 ) {\n\t\t// `x+1-n` will be negative and computing the ratio of two gammas will not work, so split the product up into three parts:\n\t\txp1 = x + 1.0;\n\t\tn2 = abs( floor( xp1 ) );\n\t\tif ( n2 === xp1 ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\tresult = gammaDeltaRatio( xp1, -n2 );\n\t\tx -= n2;\n\t\tresult *= x;\n\t\tn2 += 1.0;\n\t\tif ( n2 < n ) {\n\t\t\tresult *= fallingFactorial( x-1.0, n-n2 );\n\t\t}\n\t\treturn result;\n\t}\n\t// Simple case: just the ratio of two (positive argument) gamma functions. Note that we don't optimize this for small `n`, because `gammaDeltaRatio` is already optimized for that use case:\n\treturn gammaDeltaRatio( x+1.0, -n );\n}\n\n\n// EXPORTS //\n\nexport default fallingFactorial;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the absolute value of `x`.\n*\n* @param {number} x - input value\n* @returns {number} absolute value\n*\n* @example\n* var v = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = abs( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = abs( NaN );\n* // returns NaN\n*/\nfunction abs( x ) {\n\tif ( x < 0.0 ) {\n\t\treturn -x;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../../base/special/fast/abs';\n\n\n// VARIABLES //\n\n// 2*cos(pi/8)/(1+cos(pi/8)):\nvar ALPHA = 0.96043387010342;\n\n// 2*sin(pi/8)/(1+cos(pi/8)):\nvar BETA = 0.397824734759316;\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse using the alpha max plus beta min algorithm.\n*\n* @param {number} x - number\n* @param {number} y - number\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( -5.0, 12.0 );\n* // returns ~13.5\n*/\nfunction hypot( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\tif ( x > y ) {\n\t\treturn (ALPHA*x) + (BETA*y);\n\t}\n\treturn (ALPHA*y) + (BETA*x);\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the hypotenuse using the alpha max plus beta min algorithm, where `alpha = 1` and `beta = 1/2`.\n*\n* @private\n* @param {uinteger32} x - integer\n* @param {uinteger32} y - integer\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( 5.0, 12.0 );\n* // returns \n*/\nfunction hypot( x, y ) {\n\tif ( x > y ) {\n\t\treturn x + (y>>>1);\n\t}\n\treturn (x>>>1) + y;\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes an absolute value of a signed 32-bit integer in two's complement format.\n*\n* ## Method\n*\n* - Assume two's complement format.\n* - Create a mask by applying a sign propagating right-shift. For negative integers, this results in all `1`'s. For nonnegative integers, this results in all `0`'s.\n* - XOR the mask with `x`. For negative integers, this is the equivalent of a NOT. For nonnegative integers, this is a no-op.\n* - Subtract the mask to recover the absolute value. For negative integers, this adds `1`, which is `-x` when using two's complement. For nonnegative integers, this subtracts `0`.\n*\n* @param {integer32} x - integer\n* @returns {integer32} absolute value\n*\n* @example\n* var v = labs( -10|0 );\n* // returns 10\n*/\nfunction labs( x ) {\n\tvar mask;\n\tvar y;\n\n\ty = x|0; // asm type annotation\n\tmask = ( y >> 31 )|0; // asm type annotation\n\treturn ((y ^ mask) - mask)|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default labs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../../base/special/labs';\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse using the alpha max plus beta min algorithm, where `alpha = 1` and `beta = 1/2`.\n*\n* @private\n* @param {integer32} x - integer\n* @param {integer32} y - integer\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( 5.0, 12.0 );\n* // returns \n*/\nfunction hypot( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\tif ( x > y ) {\n\t\treturn x + (y>>>1);\n\t}\n\treturn (x>>>1) + y;\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the hypotenuse using the alpha max plus beta min algorithm, where `alpha = 1` and `beta = 1/4`.\n*\n* @private\n* @param {uinteger32} x - integer\n* @param {uinteger32} y - integer\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( 5.0, 12.0 );\n* // returns \n*/\nfunction hypot( x, y ) {\n\tif ( x > y ) {\n\t\treturn x + (y>>>2);\n\t}\n\treturn (x>>>2) + y;\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../../base/special/labs';\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse using the alpha max plus beta min algorithm, where `alpha = 1` and `beta = 1/4`.\n*\n* @private\n* @param {integer32} x - integer\n* @param {integer32} y - integer\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( 5.0, 12.0 );\n* // returns \n*/\nfunction hypot( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\tif ( x > y ) {\n\t\treturn x + (y>>>2);\n\t}\n\treturn (x>>>2) + y;\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the hypotenuse.\n*\n* @module @stdlib/math/base/special/fast/alpha-max-plus-beta-min\n*\n* @example\n* import hypot from '@stdlib/math/base/special/fast/alpha-max-plus-beta-min';\n*\n* var h = hypot( 5.0, 12.0 );\n* // returns ~13.5\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hypot1a from './hypot1a.js';\nimport hypot1b from './hypot1b.js';\nimport hypot2a from './hypot2a.js';\nimport hypot2b from './hypot2b.js';\nimport closure1a from './closure1a.js';\nimport closure1b from './closure1b.js';\n\n\n// MAIN //\n\n/**\n* Returns a function to compute a hypotenuse using the alpha max plus beta min algorithm.\n*\n* @param {number} alpha - alpha\n* @param {number} beta - beta\n* @param {boolean} [nonnegative] - boolean indicating whether input values are always nonnegative\n* @param {boolean} [ints] - boolean indicating whether input values are always 32-bit integers\n* @returns {Function} function to compute a hypotenuse\n*\n* @example\n* var hypot = factory( 1.0, 0.5 );\n* // returns \n*/\nfunction factory( alpha, beta, nonnegative, ints ) {\n\tif ( ints ) {\n\t\tif ( alpha === 1.0 && beta === 0.5 ) {\n\t\t\tif ( nonnegative ) {\n\t\t\t\treturn hypot1a;\n\t\t\t}\n\t\t\treturn hypot1b;\n\t\t}\n\t\tif ( alpha === 1.0 && beta === 0.25 ) {\n\t\t\tif ( nonnegative ) {\n\t\t\t\treturn hypot2a;\n\t\t\t}\n\t\t\treturn hypot2b;\n\t\t}\n\t}\n\tif ( nonnegative ) {\n\t\treturn closure1a( alpha, beta );\n\t}\n\treturn closure1b( alpha, beta );\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns a function to compute the hypotenuse using the alpha max plus beta min algorithm.\n*\n* @private\n* @param {number} alpha - alpha\n* @param {number} beta - beta\n* @returns {Function} function to compute the hypotenuse\n*\n* @example\n* var fcn = wrap( 1.0, 0.5 );\n* // returns \n*/\nfunction wrap( alpha, beta ) {\n\treturn hypot;\n\n\t/**\n\t* Computes the hypotenuse using the alpha max plus beta min algorithm.\n\t*\n\t* @private\n\t* @param {NonNegativeNumber} x - number\n\t* @param {NonNegativeNumber} y - number\n\t* @returns {number} hypotenuse\n\t*\n\t* @example\n\t* var h = hypot( 5.0, 12.0 );\n\t* // returns \n\t*/\n\tfunction hypot( x, y ) {\n\t\tif ( x > y ) {\n\t\t\treturn (alpha*x) + (beta*y);\n\t\t}\n\t\treturn (beta*x) + (alpha*y);\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../../base/special/fast/abs';\n\n\n// MAIN //\n\n/**\n* Returns a function to compute the hypotenuse using the alpha max plus beta min algorithm.\n*\n* @private\n* @param {number} alpha - alpha\n* @param {number} beta - beta\n* @returns {Function} function to compute the hypotenuse\n*\n* @example\n* var fcn = wrap( 1.0, 0.5 );\n* // returns \n*/\nfunction wrap( alpha, beta ) {\n\treturn hypot;\n\n\t/**\n\t* Computes the hypotenuse using the alpha max plus beta min algorithm.\n\t*\n\t* @private\n\t* @param {number} x - number\n\t* @param {number} y - number\n\t* @returns {number} hypotenuse\n\t*\n\t* @example\n\t* var h = hypot( 5.0, 12.0 );\n\t* // returns \n\t*/\n\tfunction hypot( x, y ) {\n\t\tx = abs( x );\n\t\ty = abs( y );\n\t\tif ( x > y ) {\n\t\t\treturn (alpha*x) + (beta*y);\n\t\t}\n\t\treturn (beta*x) + (alpha*y);\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace fast.special\n*/\nvar ns = {};\n\n/**\n* @name abs\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/abs}\n*/\nimport abs from './../../../../base/special/fast/abs';\nsetReadOnly( ns, 'abs', abs );\n\n/**\n* @name acosh\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/acosh}\n*/\nimport acosh from './../../../../base/special/fast/acosh';\nsetReadOnly( ns, 'acosh', acosh );\n\n/**\n* @name ampbm\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/alpha-max-plus-beta-min}\n*/\nimport ampbm from './../../../../base/special/fast/alpha-max-plus-beta-min';\nsetReadOnly( ns, 'ampbm', ampbm );\n\n/**\n* @name asinh\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/asinh}\n*/\nimport asinh from './../../../../base/special/fast/asinh';\nsetReadOnly( ns, 'asinh', asinh );\n\n/**\n* @name atanh\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/atanh}\n*/\nimport atanh from './../../../../base/special/fast/atanh';\nsetReadOnly( ns, 'atanh', atanh );\n\n/**\n* @name hypot\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/hypot}\n*/\nimport hypot from './../../../../base/special/fast/hypot';\nsetReadOnly( ns, 'hypot', hypot );\n\n/**\n* @name max\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/max}\n*/\nimport max from './../../../../base/special/fast/max';\nsetReadOnly( ns, 'max', max );\n\n/**\n* @name min\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/min}\n*/\nimport min from './../../../../base/special/fast/min';\nsetReadOnly( ns, 'min', min );\n\n/**\n* @name powint\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/pow-int}\n*/\nimport powint from './../../../../base/special/fast/pow-int';\nsetReadOnly( ns, 'powint', powint );\n\n/**\n* @name log2Uint32\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/uint32-log2}\n*/\nimport log2Uint32 from './../../../../base/special/fast/uint32-log2';\nsetReadOnly( ns, 'log2Uint32', log2Uint32 );\n\n/**\n* @name sqrtUint32\n* @memberof fast.special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fast/uint32-sqrt}\n*/\nimport sqrtUint32 from './../../../../base/special/fast/uint32-sqrt';\nsetReadOnly( ns, 'sqrtUint32', sqrtUint32 );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isinfinite from './../../../../../base/assert/is-infinite';\nimport isnan from './../../../../../base/assert/is-nan';\nimport ln from './../../../../../base/special/ln';\nimport sqrt from './../../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arccosine of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arccosine (in radians)\n*\n* @example\n* var v = acosh( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = acosh( 2.0 );\n* // returns ~1.317\n*\n* @example\n* var v = acosh( NaN );\n* // returns NaN\n*/\nfunction acosh( x ) {\n\tif ( x < 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( isnan( x ) || isinfinite( x ) ) {\n\t\treturn x;\n\t}\n\treturn ln( x + (sqrt( x+1.0 )*sqrt( x-1.0 )) );\n}\n\n\n// EXPORTS //\n\nexport default acosh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isinfinite from './../../../../../base/assert/is-infinite';\nimport isnan from './../../../../../base/assert/is-nan';\nimport ln from './../../../../../base/special/ln';\nimport sqrt from './../../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arcsine of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arcsine (in radians)\n*\n* @example\n* var v = asinh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = asinh( 2.0 );\n* // returns ~1.444\n*\n* @example\n* var v = asinh( -2.0 );\n* // returns ~-1.444\n*\n* @example\n* var v = asinh( NaN );\n* // returns NaN\n*/\nfunction asinh( x ) {\n\tif (\n\t\tx === 0.0 || // +-0.0\n\t\tisnan( x ) ||\n\t\tisinfinite( x )\n\t) {\n\t\treturn x;\n\t}\n\tif ( x > 0 ) {\n\t\treturn ln( x + sqrt( (x*x) + 1 ) );\n\t}\n\t// Better precision for large negative `x`:\n\treturn -ln( -x + sqrt( (x*x) + 1 ) );\n}\n\n\n// EXPORTS //\n\nexport default asinh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isinfinite from './../../../../../base/assert/is-infinite';\nimport isnan from './../../../../../base/assert/is-nan';\nimport ln from './../../../../../base/special/ln';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arctangent of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arctangent (in radians)\n*\n* @example\n* var v = atanh( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = atanh( 0.9 );\n* // returns ~1.472\n*\n* @example\n* var v = atanh( 1.0 );\n* // returns Infinity\n*\n* @example\n* v = atanh( -1.0 );\n* // returns -Infinity\n*\n* @example\n* var v = atanh( NaN );\n* // returns NaN\n*/\nfunction atanh( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif (\n\t\tisnan( x ) ||\n\t\tisinfinite( x )\n\t) {\n\t\treturn NaN;\n\t}\n\treturn 0.5 * ln( (1.0+x) / (1.0-x) );\n}\n\n\n// EXPORTS //\n\nexport default atanh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the hypotenuse.\n*\n* @param {number} x - number\n* @param {number} y - number\n* @returns {number} hypotenuse\n*\n* @example\n* var h = hypot( -5.0, 12.0 );\n* // returns 13.0\n*/\nfunction hypot( x, y ) {\n\treturn sqrt( (x*x) + (y*y) );\n}\n\n\n// EXPORTS //\n\nexport default hypot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the maximum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum value\n*\n* @example\n* var v = max( 3.14, 4.2 );\n* // returns 4.2\n*\n* @example\n* var v = max( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = max( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = max( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = max( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction max( x, y ) {\n\tif ( x > y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default max;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = min( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar ZERO = 0|0; // asm type annotation\nvar ONE = 1|0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function.\n*\n* ## Method\n*\n* - The exponential function is given by\n*\n* ```tex\n* z = x^y\n* ```\n*\n* where \\\\(x\\\\) is the base and \\\\(y\\\\) the exponent.\n*\n* - First observe that a naive approach for exponentiation\n*\n* ```tex\n* 5^5 = 5 \\cdot 5 \\cdot 5 \\cdot 5 \\cdot 5\n* ```\n*\n* requires \\\\(y-1\\\\) multiplications.\n*\n* - We can reduce the number of multiplications by first computing \\\\(x2 = x \\cdot x\\\\).\n*\n* ```tex\n* 5^5 = x2 \\cdot x2 \\cdot x\n* ```\n*\n* thus requiring only three multiplications.\n*\n* - This observation may be generalized, such that, for a positive exponent \\\\(y\\\\),\n*\n* ```tex\n* x^y = \\begin{cases}\n* x (x^2)^{\\frac{y-1}{2}}, & \\text{if $y$ is odd} \\\\\n* (x^2)^{\\frac{y}{2}}, & \\text{if $y$ is even}\n* \\end{cases}\n* ```\n*\n* - Note that the above generalization only involves powers of two. For example, in our working example, the powers are \\\\(1\\\\) and \\\\(4\\\\). To determine these powers, we observe that integer values, when stored in binary format, are simply sums of powers of two. For example, the integer \\\\(5\\\\) has the bit sequence\n*\n* ```binarystring\n* 00000000000000000000000000000101\n* ```\n*\n* where \\\\(101\\\\) translates to\n*\n* ```tex\n* 2^2 + 2^0 = 4 + 1 = 5\n* ```\n*\n* Thus, rather conveniently, the powers of two needed for exponentiation are easily derived from the binary representation of the integer exponent.\n*\n* - The previous observation lends itself readily to an iterative exponentiation algorithm, referred to as **right-to-left binary exponentiation**. The algorithm is as follows:\n*\n* ```text\n* 1. Examine the least significant bit to determine if we have a power of 2.\n* 2. If yes, compute an intermediate result.\n* 3. Square the base.\n* 4. Shift off the least significant bit (LSB).\n* 5. If the exponent is greater than 0, repeat steps 1-4.\n* 6. Return the intermediate result.\n* ```\n*\n* For example, consider \\\\(5^5 = 3125\\\\).\n*\n* ```text\n* Initialization: r = 1\n* Iteration 1: y = 101 => r = 1*5, x = 5*5 = 25\n* Iteration 2: y = 10 => x = 25*25 = 625\n* Iteration 3: y = 1 => r = 5*625 = 3125, x = 625*625\n* Return: r\n* ```\n*\n* ## Notes\n*\n* - The above algorithm involves \\\\(\\lfloor \\log_2(y) \\rfloor\\\\) square operations and at most \\\\(\\lfloor \\log_2(y) \\rfloor\\\\) multiplications.\n*\n* - The above algorithm may not return precise results due to an accumulation of error. For example,\n*\n* ```javascript\n* var y = pow( 10.0, 308 );\n* // returns 1.0000000000000006e+308\n* // expected 1.0e+308\n* ```\n*\n* If we compare the bit sequence of the returned value\n*\n* ```binarystring\n* 0111111111100001110011001111001110000101111010111100100010100011\n* ```\n*\n* with the expected value\n*\n* ```binarystring\n* 0111111111100001110011001111001110000101111010111100100010100000\n* ```\n*\n* we observe that the returned value differs in its last two bits.\n*\n* @param {number} x - base\n* @param {integer32} y - exponent\n* @returns {number} function value\n*\n* @example\n* var v = pow( 2.0, 3 );\n* // returns 8.0\n*\n* @example\n* var v = pow( 3.14, 0 );\n* // returns 1.0\n*\n* @example\n* var v = pow( 2.0, -2 );\n* // returns 0.25\n*\n* @example\n* var v = pow( 0.0, 0 );\n* // returns 1.0\n*\n* @example\n* var v = pow( -3.14, 1 );\n* // returns -3.14\n*\n* @example\n* var v = pow( NaN, 0 );\n* // returns NaN\n*/\nfunction pow( x, y ) {\n\tvar v;\n\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\t// If the exponent is negative, use the reciprocal...\n\tif ( y < ZERO ) {\n\t\ty = -y;\n\t\tif ( x === 0.0 ) {\n\t\t\tx = 1.0 / x; // +-infinity\n\t\t\tif ( ( y & ONE ) === ONE ) {\n\t\t\t\t// Exponent is odd, so `x` keeps its sign:\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\t// Exponent is even, so result is always positive:\n\t\t\treturn PINF;\n\t\t}\n\t\tx = 1.0 / x;\n\t}\n\t// If the exponent is zero, the result is always unity...\n\telse if ( y === ZERO ) {\n\t\treturn 1.0;\n\t}\n\tv = 1;\n\twhile ( y !== ZERO ) {\n\t\t// Check the least significant bit (LSB) to determine if \"on\" (if so, we have a power of 2)...\n\t\tif ( ( y & ONE ) === ONE ) {\n\t\t\tv *= x;\n\t\t}\n\t\tx *= x; // possible overflow\n\t\ty >>= ONE;\n\t}\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default pow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// 4294901760 => 0xFFFF0000 => 11111111111111110000000000000000\nvar B4 = 0xFFFF0000 >>> 0; // asm type annotation\n\n// 65280 => 0xFF00 => 00000000000000001111111100000000\nvar B3 = 0xFF00 >>> 0; // asm type annotation\n\n// 240 => 0xF0 => 00000000000000000000000011110000\nvar B2 = 0xF0 >>> 0; // asm type annotation\n\n// 12 => 0xC => 00000000000000000000000000001100\nvar B1 = 0xC >>> 0; // asm type annotation\n\n// 2 => 0x2 => 00000000000000000000000000000010\nvar B0 = 0x2 >>> 0; // asm type annotation\n\n// 16 => 00000000000000000000000000010000\nvar S4 = 16 >>> 0; // asm type annotation\n\n// 8 => 00000000000000000000000000001000\nvar S3 = 8 >>> 0; // asm type annotation\n\n// 4 => 00000000000000000000000000000100\nvar S2 = 4 >>> 0; // asm type annotation\n\n// 2 => 00000000000000000000000000000010\nvar S1 = 2 >>> 0; // asm type annotation\n\n// 1 => 00000000000000000000000000000001\nvar S0 = 1 >>> 0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Computes an integer binary logarithm (base two).\n*\n* ## Method\n*\n* 1. Note that the largest unsigned 32-bit integer is `4294967295`, which is `2^{32}-1`. Hence, the integer binary logarithm cannot exceed `31` (i.e., `16 + 8 + 4 + 2 + 1`), which corresponds to the bit sequence\n*\n* ```binarystring\n* 00000000000000000000000000011111\n* ```\n*\n* 2. Initialize a return variable with the value zero.\n*\n* 3. If at least one of the first sixteen most significant bits of the input 32-bit integer `x` is turned on, we know that the power to which the number `2` must be raised to obtain `x` is at least `16` (i.e., `x > 65536`). Hence, activate the corresponding bit of the return variable. Mutate `x` by shifting sixteen bits to the right, discarding the bits shifted off.\n*\n* 4. Carry out the following steps with `B` in `[ 8, 4, 2, 1 ]`:\n*\n* - If at least one of the next `B` most significant bits of the current `x` is turned on, we know that the power to which the number `2` must be raised to obtain `x` has to be increased by `B`.\n* - Activate the bit of the return variable that corresponds to `B`.\n* - Mutate `x` by shifting `B` bits to the right, discarding the bits shifted off.\n*\n* 5. The final value of the return variable is the integer binary logarithm of `x`.\n*\n* @param {uinteger32} x - input value\n* @returns {uinteger32} integer binary logarithm\n*\n* @example\n* var v = log2( 4 >>> 0 );\n* // returns 2\n*\n* @example\n* var v = log2( 8 >>> 0 );\n* // returns 3\n*\n* @example\n* var v = log2( 9 >>> 0 );\n* // returns 3\n*/\nfunction log2( x ) {\n\tvar out = 0 >>> 0; // asm type annotation\n\tvar y = x >>> 0; // asm type annotation\n\n\t// `x >= 65536`:\n\tif ( y & B4 ) {\n\t\ty >>>= S4;\n\t\tout |= S4;\n\t}\n\t// `x >= 256`:\n\tif ( y & B3 ) {\n\t\ty >>>= S3;\n\t\tout |= S3;\n\t}\n\t// `x >= 16`:\n\tif ( y & B2 ) {\n\t\ty >>>= S2;\n\t\tout |= S2;\n\t}\n\t// `x >= 4`:\n\tif ( y & B1 ) {\n\t\ty >>>= S1;\n\t\tout |= S1;\n\t}\n\t// `x >= 2`:\n\tif ( y & B0 ) {\n\t\ty >>>= S0;\n\t\tout |= S0;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default log2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\n// Set the second most significant bit: 00100000000000000000000000000000 => 1<<30 = 1073741824\nvar BIT = 1073741824 >>> 0; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Returns an integer square root.\n*\n* @param {uinteger32} x - input value\n* @returns {uinteger32} integer square root\n*\n* @example\n* var v = sqrt( 9 >>> 0 );\n* // returns 3\n*\n* @example\n* var v = sqrt( 2 >>> 0 );\n* // returns 1\n*\n* @example\n* var v = sqrt( 3 >>> 0 );\n* // returns 1\n*\n* @example\n* var v = sqrt( 0 >>> 0 );\n* // returns 0\n*/\nfunction sqrt( x ) {\n\tvar root;\n\tvar bit;\n\tvar sum;\n\tvar y;\n\n\ty = x >>> 0; // asm type annotation\n\n\troot = 0 >>> 0; // asm type annotation\n\tbit = BIT;\n\n\t// `bit` should start as the highest power of `4` less than or equal to `x`:\n\twhile ( bit > y ) {\n\t\tbit >>>= 2;\n\t}\n\t// Perform a digit-by-digit/abacus computation...\n\twhile ( bit !== 0 ) {\n\t\tsum = ( root + bit ) >>> 0; // asm type annotation\n\t\troot >>>= 1;\n\t\tif ( x >= sum ) {\n\t\t\tx -= sum;\n\t\t\troot += bit;\n\t\t}\n\t\tbit >>>= 2;\n\t}\n\t// Note: `x` is the remainder\n\n\treturn root >>> 0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nexport default sqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport ln from './../../../../base/special/ln';\nimport round from './../../../../base/special/round';\nimport PHI from '@stdlib/constants/float64/phi';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar SQRT_5 = 2.23606797749979;\nvar LN_PHI = ln( PHI );\n\n\n// MAIN //\n\n/**\n* Computes the Fibonacci number index.\n*\n* ## Notes\n*\n* - We use `round` instead of `floor` due to errors introduced by floating-point precision.\n*\n* @param {NonNegativeInteger} F - Fibonacci number\n* @returns {NonNegativeInteger} Fibonacci number index\n*\n* @example\n* var n = fibonacciIndex( 0 );\n* // returns NaN\n*\n* @example\n* var n = fibonacciIndex( 1 );\n* // returns NaN\n*\n* @example\n* var n = fibonacciIndex( 2 );\n* // returns 3\n*\n* @example\n* var n = fibonacciIndex( 3 );\n* // returns 4\n*\n* @example\n* var n = fibonacciIndex( 5 );\n* // returns 5\n*\n* @example\n* var n = fibonacciIndex( 8 );\n* // returns 6\n*\n* @example\n* var n = fibonacciIndex( NaN );\n* // returns NaN\n*\n* @example\n* var n = fibonacciIndex( 3.14 );\n* // returns NaN\n*\n* @example\n* var n = fibonacciIndex( -1 );\n* // returns NaN\n*/\nfunction fibonacciIndex( F ) {\n\tvar x;\n\tif (\n\t\tisnan( F ) ||\n\t\tisInteger( F ) === false ||\n\t\tF <= 1 ||\n\t\tF === PINF\n\t) {\n\t\treturn NaN;\n\t}\n\tx = ( F*SQRT_5 ) + 0.5;\n\treturn round( ln( x ) / LN_PHI );\n}\n\n\n// EXPORTS //\n\nexport default fibonacciIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport SIGN_MASK from '@stdlib/constants/float64/high-word-sign-mask';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport getHighWord from '@stdlib/number/float64/base/get-high-word';\nimport fromWords from '@stdlib/number/float64/base/from-words';\n\n\n// VARIABLES //\n\n// High/low words workspace:\nvar WORDS = [ 0>>>0, 0>>>0 ]; // asm type annotation\n\n\n// MAIN //\n\n/**\n* Returns a double-precision floating-point number with the magnitude of `x` and the sign of `x*y`.\n*\n* @param {number} x - number from which to derive a magnitude\n* @param {number} y - number from which to derive a sign\n* @returns {number} a double-precision floating-point number\n*\n* @example\n* var z = flipsign( -3.0, 10.0 );\n* // returns -3.0\n*\n* @example\n* var z = flipsign( -3.0, -1.0 );\n* // returns 3.0\n*\n* @example\n* var z = flipsign( 1.0, -0.0 );\n* // returns -1.0\n*\n* @example\n* var z = flipsign( -3.0, -0.0 );\n* // returns 3.0\n*\n* @example\n* var z = flipsign( -0.0, 1.0 );\n* // returns -0.0\n*\n* @example\n* var z = flipsign( 0.0, -1.0 );\n* // returns -0.0\n*/\nfunction flipsign( x, y ) {\n\tvar hx;\n\tvar hy;\n\n\t// Split `x` into higher and lower order words:\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thx = WORDS[ 0 ];\n\n\t// Extract the higher order word from `y`:\n\thy = getHighWord( y );\n\n\t// Leave only the sign bit of `y` turned on (if on):\n\thy &= SIGN_MASK;\n\n\t// Flip the sign bit of `x` only when the sign bit of `y` is on:\n\thx ^= hy; // 1^1=0 (flipped), 0^1=1 (flipped), 1^0=1 (unchanged), 0^0=0 (unchanged)\n\n\t// Return a new value having the same magnitude as `x`, but with the sign of `x*y`:\n\treturn fromWords( hx, WORDS[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default flipsign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log2 from './../../../../base/special/log2';\nimport MAX_EXP from '@stdlib/constants/float64/max-base2-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base2-exponent-subnormal';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of two toward negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor2( 3.141592653589793 );\n* // returns 2.0\n*\n* @example\n* var v = floor2( 13.0 );\n* // returns 8.0\n*\n* @example\n* var v = floor2( -0.314 );\n* // returns -0.5\n*/\nfunction floor2( x ) {\n\tvar sign;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\t// Solve the equation `2^p = x` for `p`:\n\tp = log2( x );\n\n\t// If provided the smallest subnormal, no rounding possible:\n\tif ( p === MIN_EXP_SUBNORMAL ) {\n\t\treturn x;\n\t}\n\t// Determine a power of two which rounds the input value toward negative infinity:\n\tif ( sign === 1.0 ) {\n\t\tp = floor( p );\n\t} else {\n\t\tp = ceil( p );\n\t}\n\t// Handle overflow:\n\tif ( p > MAX_EXP ) {\n\t\treturn NINF;\n\t}\n\treturn sign * pow( 2.0, p );\n}\n\n\n// EXPORTS //\n\nexport default floor2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log10 from './../../../../base/special/log10';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of `10` toward negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor10( 3.141592653589793 );\n* // returns 1.0\n*\n* @example\n* var v = floor10( 9.0 );\n* // returns 1.0\n*\n* @example\n* var v = floor10( -0.314 );\n* // returns -1.0\n*/\nfunction floor10( x ) {\n\tvar sign;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\t// Solve the equation `10^p = x` for `p`:\n\tp = log10( x );\n\n\t// Determine a power of 10 which rounds the input value toward negative infinity:\n\tif ( sign === 1.0 ) {\n\t\tp = floor( p );\n\t} else {\n\t\tp = ceil( p );\n\t}\n\t// Handle underflow:\n\tif ( p <= MIN_EXP_SUBNORMAL ) {\n\t\treturn sign * 0.0; // sign-preserving\n\t}\n\t// Handle overflow:\n\tif ( p > MAX_EXP ) {\n\t\treturn NINF;\n\t}\n\treturn sign * pow( 10.0, p );\n}\n\n\n// EXPORTS //\n\nexport default floor10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a single-precision floating-point number toward negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floorf( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floorf( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floorf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floorf( NaN );\n* // returns NaN\n*/\nvar floorf = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floorf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport abs from './../../../../base/special/abs';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport PI from '@stdlib/constants/float64/pi';\nimport polyS from './rational_psqs.js';\nimport polyC from './rational_pcqc.js';\nimport polyF from './rational_pfqf.js';\nimport polyG from './rational_pgqg.js';\n\n\n// VARIABLES //\n\n// Array for storing sincos evaluation:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Fresnel integrals S(x) and C(x) and assigns results to a provided output array.\n*\n* ## Method\n*\n* Evaluates the Fresnel integrals\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{S}(x) &= \\int_0^x \\sin\\left(\\frac{\\pi}{2} t^2\\right)\\,\\mathrm{d}t, \\\\\n* \\operatorname{C}(x) &= \\int_0^x \\cos\\left(\\frac{\\pi}{2} t^2\\right)\\,\\mathrm{d}t.\n* \\end{align*}\n* ```\n*\n* The integrals are evaluated by a power series for \\\\( x < 1 \\\\). For \\\\( x >= 1 \\\\) auxiliary functions \\\\( f(x) \\\\) and \\\\( g(x) \\\\) are employed such that\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{C}(x) &= \\frac{1}{2} + f(x) \\sin\\left( \\frac{\\pi}{2} x^2 \\right) - g(x) \\cos\\left( \\frac{\\pi}{2} x^2 \\right), \\\\\n* \\operatorname{S}(x) &= \\frac{1}{2} - f(x) \\cos\\left( \\frac{\\pi}{2} x^2 \\right) - g(x) \\sin\\left( \\frac{\\pi}{2} x^2 \\right).\n* \\end{align*}\n* ```\n*\n* ## Notes\n*\n* - Relative error on test interval \\\\( \\[0,10\\] \\\\):\n*\n* | arithmetic | function | # trials | peak | rms |\n* |:----------:|:--------:|:--------:|:-------:|:-------:|\n* | IEEE | S(x) | 10000 | 2.0e-15 | 3.2e-16 |\n* | IEEE | C(x) | 10000 | 1.8e-15 | 3.3e-16 |\n*\n* @private\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} S(x) and C(x)\n*\n* @example\n* var v = fresnel( 0.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var v = fresnel( 1.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.438, ~0.780 ]\n*\n* @example\n* var v = fresnel( Infinity, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~0.5, ~0.5 ]\n*\n* @example\n* var v = fresnel( -Infinity, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~-0.5, ~-0.5 ]\n*\n* @example\n* var v = fresnel( NaN, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ NaN, NaN ]\n*/\nfunction fresnel( x, out, stride, offset ) {\n\tvar x2;\n\tvar xa;\n\tvar f;\n\tvar g;\n\tvar t;\n\tvar u;\n\n\txa = abs( x );\n\tx2 = xa * xa;\n\tif ( x2 < 2.5625 ) {\n\t\tt = x2 * x2;\n\t\tout[ offset ] = xa * x2 * polyS( t );\n\t\tout[ offset+stride ] = xa * polyC( t );\n\t} else if ( xa > 36974.0 ) {\n\t\tout[ offset+stride ] = 0.5;\n\t\tout[ offset ] = 0.5;\n\t} else {\n\t\t// Asymptotic power series auxiliary functions for large arguments...\n\t\tx2 = xa * xa;\n\t\tt = PI * x2;\n\t\tu = 1.0 / (t * t);\n\t\tt = 1.0 / t;\n\t\tf = 1.0 - ( u * polyF( u ) );\n\t\tg = t * polyG( u );\n\t\tt = HALF_PI * x2;\n\t\tsincos( t, sc, 1, 0 );\n\t\tt = PI * xa;\n\t\tout[ offset+stride ] = 0.5 + ( ( (f*sc[0]) - (g*sc[1]) ) / t );\n\t\tout[ offset ] = 0.5 - ( ( (f*sc[1]) + (g*sc[0]) ) / t );\n\t}\n\tif ( x < 0.0 ) {\n\t\tout[ offset+stride ] = -out[ offset+stride ];\n\t\tout[ offset ] = -out[ offset ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fresnel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.5235987755982989;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 318016297876.5678 + (x * (-44297951805.96978 + (x * (2548908805.7337637 + (x * (-62974148.62058625 + (x * (708840.0452577386 + (x * (-2991.8191940101983 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 607366389490.0846 + (x * (22441179564.534092 + (x * (419320245.8981112 + (x * (5173438.887700964 + (x * (45584.78108065326 + (x * (281.3762688899943 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-2991.8191940101983 + (x * (708840.0452577386 + (x * (-62974148.62058625 + (x * (2548908805.7337637 + (x * (-44297951805.96978 + (x * 318016297876.5678))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (281.3762688899943 + (x * (45584.78108065326 + (x * (5173438.887700964 + (x * (419320245.8981112 + (x * (22441179564.534092 + (x * 607366389490.0846))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.0 + (x * (-0.20552590095501388 + (x * (0.018884331939670384 + (x * (-0.0006451914356839651 + (x * (0.000009504280628298596 + (x * (-4.9884311457357354e-8 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.04121420907221998 + (x * (0.0008680295429417843 + (x * (0.000012226278902417902 + (x * (1.2500186247959882e-7 + (x * (9.154392157746574e-10 + (x * 3.99982968972496e-12))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-4.9884311457357354e-8 + (x * (0.000009504280628298596 + (x * (-0.0006451914356839651 + (x * (0.018884331939670384 + (x * (-0.20552590095501388 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 3.99982968972496e-12 + (x * (9.154392157746574e-10 + (x * (1.2500186247959882e-7 + (x * (0.000012226278902417902 + (x * (0.0008680295429417843 + (x * (0.04121420907221998 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 2.999999999999634;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 3.763297112699879e-20 + (x * (1.3428327623306275e-16 + (x * (1.7201074326816183e-13 + (x * (1.0230451416490724e-10 + (x * (3.055689837902576e-8 + (x * (0.0000046361374928786735 + (x * (0.000345017939782574 + (x * (0.011522095507358577 + (x * (0.1434079197807589 + (x * (0.4215435550436775 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.2544323709001127e-20 + (x * (4.5200143407412973e-17 + (x * (5.887545336215784e-14 + (x * (3.6014002958937136e-11 + (x * (1.1269922476399903e-8 + (x * (0.0000018462756734893055 + (x * (0.00015593440916415301 + (x * (0.0064405152650885865 + (x * (0.11688892585919138 + (x * (0.7515863983533789 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.4215435550436775 + (x * (0.1434079197807589 + (x * (0.011522095507358577 + (x * (0.000345017939782574 + (x * (0.0000046361374928786735 + (x * (3.055689837902576e-8 + (x * (1.0230451416490724e-10 + (x * (1.7201074326816183e-13 + (x * (1.3428327623306275e-16 + (x * 3.763297112699879e-20))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.7515863983533789 + (x * (0.11688892585919138 + (x * (0.0064405152650885865 + (x * (0.00015593440916415301 + (x * (0.0000018462756734893055 + (x * (1.1269922476399903e-8 + (x * (3.6014002958937136e-11 + (x * (5.887545336215784e-14 + (x * (4.5200143407412973e-17 + (x * 1.2544323709001127e-20))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.8695871016278324e-22 + (x * (8.363544356306774e-19 + (x * (1.375554606332618e-15 + (x * (1.0826804113902088e-12 + (x * (4.4534441586175015e-10 + (x * (9.828524436884223e-8 + (x * (0.000011513882611188428 + (x * (0.0006840793809153931 + (x * (0.018764858409257526 + (x * (0.1971028335255234 + (x * (0.5044420736433832 + (x * 0.0))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.8695871016278324e-22 + (x * (8.391588162831187e-19 + (x * (1.3879653125957886e-15 + (x * (1.1027321506624028e-12 + (x * (4.6068072814652043e-10 + (x * (1.0431458965757199e-7 + (x * (0.000012754507566772912 + (x * (0.0008146791071843061 + (x * (0.02536037414203388 + (x * (0.33774898912002 + (x * (1.4749575992512833 + (x * 1.0))))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.5044420736433832 + (x * (0.1971028335255234 + (x * (0.018764858409257526 + (x * (0.0006840793809153931 + (x * (0.000011513882611188428 + (x * (9.828524436884223e-8 + (x * (4.4534441586175015e-10 + (x * (1.0826804113902088e-12 + (x * (1.375554606332618e-15 + (x * (8.363544356306774e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.4749575992512833 + (x * (0.33774898912002 + (x * (0.02536037414203388 + (x * (0.0008146791071843061 + (x * (0.000012754507566772912 + (x * (1.0431458965757199e-7 + (x * (4.6068072814652043e-10 + (x * (1.1027321506624028e-12 + (x * (1.3879653125957886e-15 + (x * (8.391588162831187e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport computeFresnel from './assign.js';\n\n\n// MAIN //\n\n/**\n* Computes the Fresnel integrals S(x) and C(x).\n*\n* @param {number} x - input value\n* @returns {Array} S(x) and C(x)\n*\n* @example\n* var v = fresnel( 0.0 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var v = fresnel( 1.0 );\n* // returns [ ~0.438, ~0.780 ]\n*\n* @example\n* var v = fresnel( Infinity );\n* // returns [ ~0.5, ~0.5 ]\n*\n* @example\n* var v = fresnel( -Infinity );\n* // returns [ ~-0.5, ~-0.5 ]\n*\n* @example\n* var v = fresnel( NaN );\n* // returns [ NaN, NaN ]\n*/\nfunction fresnel( x ) {\n\treturn computeFresnel( x, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default fresnel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Fresnel integrals S(x) and C(x).\n*\n* @module @stdlib/math/base/special/fresnel\n*\n* @example\n* import fresnel from '@stdlib/math/base/special/fresnel';\n*\n* var v = fresnel( 0.0 );\n* // returns [ 0.0, 0.0 ]\n*\n* v = fresnel( 1.0 );\n* // returns [ ~0.438, ~0.780 ]\n*\n* v = fresnel( Infinity );\n* // returns [ ~0.5, ~0.5 ]\n*\n* v = fresnel( -Infinity );\n* // returns [ ~-0.5, ~-0.5 ]\n*\n* v = fresnel( NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* import fresnel from '@stdlib/math/base/special/fresnel';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = fresnel.assign( 0.0, out, 1, 0 );\n* // return [ ~0.0, ~0.0 ]\n*\n* var bool = ( v === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport abs from './../../../../base/special/abs';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport PI from '@stdlib/constants/float64/pi';\nimport polyC from './rational_pcqc.js';\nimport polyF from './rational_pfqf.js';\nimport polyG from './rational_pgqg.js';\n\n\n// VARIABLES //\n\n// Array for storing sincos evaluation:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Fresnel integral C(x).\n*\n* ## Method\n*\n* Evaluates the Fresnel integral\n*\n* ```tex\n* \\operatorname{C}(x) = \\int_0^x \\cos\\left(\\frac{\\pi}{2} t^2\\right)\\,\\mathrm{d}t.\n* ```\n*\n* The integral is evaluated by a power series for \\\\( x < 1 \\\\). For \\\\( x >= 1 \\\\) auxiliary functions \\\\( f(x) \\\\) and \\\\( g(x) \\\\) are employed such that\n*\n* ```tex\n* \\operatorname{C}(x) = \\frac{1}{2} + f(x) \\sin\\left( \\frac{\\pi}{2} x^2 \\right) - g(x) \\cos\\left( \\frac{\\pi}{2} x^2 \\right).\n* ```\n*\n* ## Notes\n*\n* - Relative error on test interval \\\\( \\[0,10\\] \\\\):\n*\n* | arithmetic | function | # trials | peak | rms |\n* |:----------:|:--------:|:--------:|:-------:|:-------:|\n* | IEEE | C(x) | 10000 | 1.8e-15 | 3.3e-16 |\n*\n* @param {number} x - input value\n* @returns {number} C(x)\n*\n* @example\n* var v = fresnelc( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = fresnelc( 1.0 );\n* // returns ~0.780\n*\n* @example\n* var v = fresnelc( Infinity );\n* // returns ~0.5\n*\n* @example\n* var v = fresnelc( -Infinity );\n* // returns ~-0.5\n*\n* @example\n* var v = fresnelc( NaN );\n* // returns NaN\n*/\nfunction fresnelc( x ) {\n\tvar x2;\n\tvar xa;\n\tvar C;\n\tvar f;\n\tvar g;\n\tvar t;\n\tvar u;\n\n\txa = abs( x );\n\tx2 = xa * xa;\n\tif ( x2 < 2.5625 ) {\n\t\tt = x2 * x2;\n\t\tC = xa * polyC( t );\n\t} else if ( xa > 36974.0 ) {\n\t\tC = 0.5;\n\t} else {\n\t\t// Asymptotic power series auxiliary functions for large arguments...\n\t\tx2 = xa * xa;\n\t\tt = PI * x2;\n\t\tu = 1.0 / (t * t);\n\t\tt = 1.0 / t;\n\t\tf = 1.0 - ( u * polyF( u ) );\n\t\tg = t * polyG( u );\n\t\tt = HALF_PI * x2;\n\t\tsincos( t, sc, 1, 0 );\n\t\tt = PI * xa;\n\t\tC = 0.5 + ( ( (f*sc[0]) - (g*sc[1]) ) / t );\n\t}\n\tif ( x < 0.0 ) {\n\t\tC = -C;\n\t}\n\treturn C;\n}\n\n\n// EXPORTS //\n\nexport default fresnelc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.0 + (x * (-0.20552590095501388 + (x * (0.018884331939670384 + (x * (-0.0006451914356839651 + (x * (0.000009504280628298596 + (x * (-4.9884311457357354e-8 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.04121420907221998 + (x * (0.0008680295429417843 + (x * (0.000012226278902417902 + (x * (1.2500186247959882e-7 + (x * (9.154392157746574e-10 + (x * 3.99982968972496e-12))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-4.9884311457357354e-8 + (x * (0.000009504280628298596 + (x * (-0.0006451914356839651 + (x * (0.018884331939670384 + (x * (-0.20552590095501388 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 3.99982968972496e-12 + (x * (9.154392157746574e-10 + (x * (1.2500186247959882e-7 + (x * (0.000012226278902417902 + (x * (0.0008680295429417843 + (x * (0.04121420907221998 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 2.999999999999634;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 3.763297112699879e-20 + (x * (1.3428327623306275e-16 + (x * (1.7201074326816183e-13 + (x * (1.0230451416490724e-10 + (x * (3.055689837902576e-8 + (x * (0.0000046361374928786735 + (x * (0.000345017939782574 + (x * (0.011522095507358577 + (x * (0.1434079197807589 + (x * (0.4215435550436775 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.2544323709001127e-20 + (x * (4.5200143407412973e-17 + (x * (5.887545336215784e-14 + (x * (3.6014002958937136e-11 + (x * (1.1269922476399903e-8 + (x * (0.0000018462756734893055 + (x * (0.00015593440916415301 + (x * (0.0064405152650885865 + (x * (0.11688892585919138 + (x * (0.7515863983533789 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.4215435550436775 + (x * (0.1434079197807589 + (x * (0.011522095507358577 + (x * (0.000345017939782574 + (x * (0.0000046361374928786735 + (x * (3.055689837902576e-8 + (x * (1.0230451416490724e-10 + (x * (1.7201074326816183e-13 + (x * (1.3428327623306275e-16 + (x * 3.763297112699879e-20))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.7515863983533789 + (x * (0.11688892585919138 + (x * (0.0064405152650885865 + (x * (0.00015593440916415301 + (x * (0.0000018462756734893055 + (x * (1.1269922476399903e-8 + (x * (3.6014002958937136e-11 + (x * (5.887545336215784e-14 + (x * (4.5200143407412973e-17 + (x * 1.2544323709001127e-20))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.8695871016278324e-22 + (x * (8.363544356306774e-19 + (x * (1.375554606332618e-15 + (x * (1.0826804113902088e-12 + (x * (4.4534441586175015e-10 + (x * (9.828524436884223e-8 + (x * (0.000011513882611188428 + (x * (0.0006840793809153931 + (x * (0.018764858409257526 + (x * (0.1971028335255234 + (x * (0.5044420736433832 + (x * 0.0))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.8695871016278324e-22 + (x * (8.391588162831187e-19 + (x * (1.3879653125957886e-15 + (x * (1.1027321506624028e-12 + (x * (4.6068072814652043e-10 + (x * (1.0431458965757199e-7 + (x * (0.000012754507566772912 + (x * (0.0008146791071843061 + (x * (0.02536037414203388 + (x * (0.33774898912002 + (x * (1.4749575992512833 + (x * 1.0))))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.5044420736433832 + (x * (0.1971028335255234 + (x * (0.018764858409257526 + (x * (0.0006840793809153931 + (x * (0.000011513882611188428 + (x * (9.828524436884223e-8 + (x * (4.4534441586175015e-10 + (x * (1.0826804113902088e-12 + (x * (1.375554606332618e-15 + (x * (8.363544356306774e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.4749575992512833 + (x * (0.33774898912002 + (x * (0.02536037414203388 + (x * (0.0008146791071843061 + (x * (0.000012754507566772912 + (x * (1.0431458965757199e-7 + (x * (4.6068072814652043e-10 + (x * (1.1027321506624028e-12 + (x * (1.3879653125957886e-15 + (x * (8.391588162831187e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport abs from './../../../../base/special/abs';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport PI from '@stdlib/constants/float64/pi';\nimport polyS from './rational_psqs.js';\nimport polyF from './rational_pfqf.js';\nimport polyG from './rational_pgqg.js';\n\n\n// VARIABLES //\n\n// Array for storing sincos evaluation:\nvar sc = [ 0.0, 0.0 ];\n\n\n// MAIN //\n\n/**\n* Computes the Fresnel integral S(x).\n*\n* ## Method\n*\n* Evaluates the Fresnel integral\n*\n* ```tex\n* \\operatorname{S}(x) = \\int_0^x \\sin\\left(\\frac{\\pi}{2} t^2\\right)\\,\\mathrm{d}t\n* ```\n*\n* The integral is evaluated by a power series for \\\\( x < 1 \\\\). For \\\\( x >= 1 \\\\) auxiliary functions \\\\( f(x) \\\\) and \\\\( g(x) \\\\) are employed such that\n*\n* ```tex\n* \\operatorname{S}(x) = \\frac{1}{2} - f(x) \\cos\\left( \\frac{\\pi}{2} x^2 \\right) - g(x) \\sin\\left( \\frac{\\pi}{2} x^2 \\right).\n* ```\n*\n* ## Notes\n*\n* - Relative error on test interval \\\\( \\[0,10\\] \\\\):\n*\n* | arithmetic | function | # trials | peak | rms |\n* |:----------:|:--------:|:--------:|:--------:|:-------:|\n* | IEEE | S(x) | 10000 | 2.0e-15 | 3.2e-16 |\n*\n* @param {number} x - input value\n* @returns {number} S(x)\n*\n* @example\n* var v = fresnels( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = fresnels( 1.0 );\n* // returns ~0.438\n*\n* @example\n* var v = fresnels( Infinity );\n* // returns ~0.5\n*\n* @example\n* var v = fresnels( -Infinity );\n* // returns ~-0.5\n*\n* @example\n* var v = fresnels( NaN );\n* // returns NaN\n*/\nfunction fresnels( x ) {\n\tvar x2;\n\tvar xa;\n\tvar S;\n\tvar f;\n\tvar g;\n\tvar t;\n\tvar u;\n\n\txa = abs( x );\n\tx2 = xa * xa;\n\tif ( x2 < 2.5625 ) {\n\t\tt = x2 * x2;\n\t\tS = xa * x2 * polyS( t );\n\t} else if ( xa > 36974.0 ) {\n\t\tS = 0.5;\n\t} else {\n\t\t// Asymptotic power series auxiliary functions for large arguments...\n\t\tx2 = xa * xa;\n\t\tt = PI * x2;\n\t\tu = 1.0 / (t * t);\n\t\tt = 1.0 / t;\n\t\tf = 1.0 - ( u * polyF( u ) );\n\t\tg = t * polyG( u );\n\t\tt = HALF_PI * x2;\n\t\tsincos( t, sc, 1, 0 );\n\t\tt = PI * xa;\n\t\tS = 0.5 - ( ( (f*sc[1]) + (g*sc[0]) ) / t );\n\t}\n\tif ( x < 0.0 ) {\n\t\tS = -S;\n\t}\n\treturn S;\n}\n\n\n// EXPORTS //\n\nexport default fresnels;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.5235987755982989;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 318016297876.5678 + (x * (-44297951805.96978 + (x * (2548908805.7337637 + (x * (-62974148.62058625 + (x * (708840.0452577386 + (x * (-2991.8191940101983 + (x * 0.0))))))))))); // eslint-disable-line max-len\n\t\ts2 = 607366389490.0846 + (x * (22441179564.534092 + (x * (419320245.8981112 + (x * (5173438.887700964 + (x * (45584.78108065326 + (x * (281.3762688899943 + (x * 1.0))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (-2991.8191940101983 + (x * (708840.0452577386 + (x * (-62974148.62058625 + (x * (2548908805.7337637 + (x * (-44297951805.96978 + (x * 318016297876.5678))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (281.3762688899943 + (x * (45584.78108065326 + (x * (5173438.887700964 + (x * (419320245.8981112 + (x * (22441179564.534092 + (x * 607366389490.0846))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 2.999999999999634;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 3.763297112699879e-20 + (x * (1.3428327623306275e-16 + (x * (1.7201074326816183e-13 + (x * (1.0230451416490724e-10 + (x * (3.055689837902576e-8 + (x * (0.0000046361374928786735 + (x * (0.000345017939782574 + (x * (0.011522095507358577 + (x * (0.1434079197807589 + (x * (0.4215435550436775 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.2544323709001127e-20 + (x * (4.5200143407412973e-17 + (x * (5.887545336215784e-14 + (x * (3.6014002958937136e-11 + (x * (1.1269922476399903e-8 + (x * (0.0000018462756734893055 + (x * (0.00015593440916415301 + (x * (0.0064405152650885865 + (x * (0.11688892585919138 + (x * (0.7515863983533789 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.4215435550436775 + (x * (0.1434079197807589 + (x * (0.011522095507358577 + (x * (0.000345017939782574 + (x * (0.0000046361374928786735 + (x * (3.055689837902576e-8 + (x * (1.0230451416490724e-10 + (x * (1.7201074326816183e-13 + (x * (1.3428327623306275e-16 + (x * 3.763297112699879e-20))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.7515863983533789 + (x * (0.11688892585919138 + (x * (0.0064405152650885865 + (x * (0.00015593440916415301 + (x * (0.0000018462756734893055 + (x * (1.1269922476399903e-8 + (x * (3.6014002958937136e-11 + (x * (5.887545336215784e-14 + (x * (4.5200143407412973e-17 + (x * 1.2544323709001127e-20))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.8695871016278324e-22 + (x * (8.363544356306774e-19 + (x * (1.375554606332618e-15 + (x * (1.0826804113902088e-12 + (x * (4.4534441586175015e-10 + (x * (9.828524436884223e-8 + (x * (0.000011513882611188428 + (x * (0.0006840793809153931 + (x * (0.018764858409257526 + (x * (0.1971028335255234 + (x * (0.5044420736433832 + (x * 0.0))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.8695871016278324e-22 + (x * (8.391588162831187e-19 + (x * (1.3879653125957886e-15 + (x * (1.1027321506624028e-12 + (x * (4.6068072814652043e-10 + (x * (1.0431458965757199e-7 + (x * (0.000012754507566772912 + (x * (0.0008146791071843061 + (x * (0.02536037414203388 + (x * (0.33774898912002 + (x * (1.4749575992512833 + (x * 1.0))))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.5044420736433832 + (x * (0.1971028335255234 + (x * (0.018764858409257526 + (x * (0.0006840793809153931 + (x * (0.000011513882611188428 + (x * (9.828524436884223e-8 + (x * (4.4534441586175015e-10 + (x * (1.0826804113902088e-12 + (x * (1.375554606332618e-15 + (x * (8.363544356306774e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (1.4749575992512833 + (x * (0.33774898912002 + (x * (0.02536037414203388 + (x * (0.0008146791071843061 + (x * (0.000012754507566772912 + (x * (1.0431458965757199e-7 + (x * (4.6068072814652043e-10 + (x * (1.1027321506624028e-12 + (x * (1.3879653125957886e-15 + (x * (8.391588162831187e-19 + (x * 1.8695871016278324e-22))))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport { assign as normalize } from '@stdlib/number/float64/base/normalize';\nimport floatExp from '@stdlib/number/float64/base/exponent';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport fromWords from '@stdlib/number/float64/base/from-words';\n\n\n// VARIABLES //\n\n// Exponent all 0s: 1 00000000000 11111111111111111111 => 2148532223\nvar CLEAR_EXP_MASK = 0x800fffff>>>0; // asm type annotation\n\n// Exponent equal to 1022 (BIAS-1): 0 01111111110 00000000000000000000 => 1071644672\nvar SET_EXP_MASK = 0x3fe00000|0; // asm type annotation\n\n// Normalization workspace:\nvar X = [ 0.0, 0.0 ]; // WARNING: not thread safe\n\n// High/low words workspace:\nvar WORDS = [ 0, 0 ]; // WARNING: not thread safe\n\n\n// MAIN //\n\n/**\n* Splits a double-precision floating-point number into a normalized fraction and an integer power of two and assigns results to a provided output array.\n*\n* @private\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = frexp( 4.0, new Array( 2 ), 1, 0 );\n* // returns [ 0.5, 3 ]\n*\n* @example\n* var out = frexp( 0.0, new Array( 2 ), 1, 0 );\n* // returns [ 0.0, 0 ]\n*\n* @example\n* var out = frexp( -0.0, new Array( 2 ), 1, 0 );\n* // returns [ -0.0, 0 ]\n*\n* @example\n* var out = frexp( NaN, new Array( 2 ), 1, 0 );\n* // returns [ NaN, 0 ]\n*\n* @example\n* var out = frexp( Infinity, new Array( 2 ), 1, 0 );\n* // returns [ Infinity , 0 ]\n*\n* @example\n* var out = frexp( -Infinity, new Array( 2 ), 1, 0 );\n* // returns [ -Infinity , 0 ]\n*/\nfunction frexp( x, out, stride, offset ) {\n\tvar high;\n\tvar exp;\n\tif (\n\t\tx === 0.0 || // handles -0\n\t\tisnan( x ) ||\n\t\tisInfinite( x )\n\t) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = 0;\n\t\treturn out;\n\t}\n\t// If `x` is subnormal, normalize it...\n\tnormalize( x, X, 1, 0 );\n\n\t// Extract the exponent from `x` and add the normalization exponent:\n\texp = floatExp( X[0] ) + X[ 1 ] + 1;\n\n\t// Break `x` into two unsigned 32-bit integers (higher and lower order words):\n\ttoWords.assign( X[ 0 ], WORDS, 1, 0 );\n\thigh = WORDS[ 0 ];\n\n\t// Clear the exponent bits within the higher order word:\n\thigh &= CLEAR_EXP_MASK;\n\n\t// Set the exponent bits within the higher order word to BIAS-1 (1023-1=1022):\n\thigh |= SET_EXP_MASK;\n\n\t// Create a new floating-point number:\n\tx = fromWords( high, WORDS[ 1 ] );\n\n\tout[ offset ] = x;\n\tout[ offset + stride ] = exp;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default frexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Splits a double-precision floating-point number into a normalized fraction and an integer power of two.\n*\n* @param {number} x - input value\n* @returns {Array} output array\n*\n* @example\n* var out = frexp( 4.0 );\n* // returns [ 0.5, 3 ]\n*\n* @example\n* var out = frexp( 0.0 );\n* // returns [ 0.0, 0 ]\n*\n* @example\n* var out = frexp( -0.0 );\n* // returns [ -0.0, 0 ]\n*\n* @example\n* var out = frexp( NaN );\n* // returns [ NaN, 0 ]\n*\n* @example\n* var out = frexp( Infinity );\n* // returns [ Infinity , 0 ]\n*\n* @example\n* var out = frexp( -Infinity );\n* // returns [ -Infinity , 0 ]\n*/\nfunction frexp( x ) {\n\treturn fcn( x, [ 0.0, 0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default frexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the half-value coversed cosine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} half-value coversed cosine\n*\n* @example\n* var v = hacovercos( 0.0 );\n* // returns 0.5\n*\n* @example\n* var v = hacovercos( 3.141592653589793/2.0 );\n* // returns 1.0\n*\n* @example\n* var v = hacovercos( -3.141592653589793/6.0 );\n* // returns 0.25\n*\n* @example\n* var v = hacovercos( NaN );\n* // returns NaN\n*/\nfunction hacovercos( x ) {\n\treturn (1.0 + sin( x )) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default hacovercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the half-value coversed sine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} half-value coversed sine\n*\n* @example\n* var v = hacoversin( 0.0 );\n* // returns 0.5\n*\n* @example\n* var v = hacoversin( 3.141592653589793/2.0 );\n* // returns 0.0\n*\n* @example\n* var v = hacoversin( -3.141592653589793/6.0 );\n* // returns 0.75\n*\n* @example\n* var v = hacoversin( NaN );\n* // returns NaN\n*/\nfunction hacoversin( x ) {\n\treturn (1.0 - sin( x )) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default hacoversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the half-value versed cosine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} half-value versed cosine\n*\n* @example\n* var v = havercos( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = havercos( 3.141592653589793/2.0 );\n* // returns 0.5\n*\n* @example\n* var v = havercos( -3.141592653589793/6.0 );\n* // returns ~0.9330\n*\n* @example\n* var v = havercos( NaN );\n* // returns NaN\n*/\nfunction havercos( x ) {\n\treturn (1.0 + cos( x )) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default havercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the half-value versed sine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} half-value versed sine\n*\n* @example\n* var v = haversin( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = haversin( 3.141592653589793/2.0 );\n* // returns ~0.5\n*\n* @example\n* var v = haversin( -3.141592653589793/6.0 );\n* // returns ~0.06699\n*\n* @example\n* var v = haversin( NaN );\n* // returns NaN\n*/\nfunction haversin( x ) {\n\treturn (1.0 - cos( x )) / 2.0;\n}\n\n\n// EXPORTS //\n\nexport default haversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluates the identity function for a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} input value\n*\n* @example\n* var v = identity( -1.0 );\n* // returns -1.0\n*\n* @example\n* var v = identity( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = identity( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = identity( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = identity( NaN );\n* // returns NaN\n*/\nfunction identity( x ) {\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default identity;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Computes the multiplicative inverse of a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} multiplicative inverse\n*\n* @example\n* var v = inv( -1.0 );\n* // returns -1.0\n*\n* @example\n* var v = inv( 2.0 );\n* // returns 0.5\n*\n* @example\n* var v = inv( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = inv( -0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = inv( NaN );\n* // returns NaN\n*/\nfunction inv( x ) {\n\treturn 1.0 / x;\n}\n\n\n// EXPORTS //\n\nexport default inv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse of a single-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} multiplicative inverse\n*\n* @example\n* var v = invf( -1.0 );\n* // returns -1.0\n*\n* @example\n* var v = invf( 2.0 );\n* // returns 0.5\n*\n* @example\n* var v = invf( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = invf( -0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = invf( NaN );\n* // returns NaN\n*/\nfunction invf( x ) {\n\treturn float64ToFloat32( 1.0 / float64ToFloat32( x ) );\n}\n\n\n// EXPORTS //\n\nexport default invf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ln from './../../../../base/special/ln';\n\n\n// MAIN //\n\n/**\n* Computes the base `b` logarithm of a double-precision floating-point number.\n*\n* @param {NonNegativeNumber} x - input value\n* @param {NonNegativeNumber} b - base\n* @returns {number} logarithm (base `b`)\n*\n* @example\n* var v = log( 100.0, 10.0 );\n* // returns 2.0\n*\n* @example\n* var v = log( 16.0, 2.0 );\n* // returns 4.0\n*\n* @example\n* var v = log( 5.0, 1.0 );\n* // returns Infinity\n*\n* @example\n* var v = log( NaN, 2.0 );\n* // returns NaN\n*\n* @example\n* var v = log( 1.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = log( -4.0, 2.0 );\n* // returns NaN\n*\n* @example\n* var v = log( 4.0, -2.0 );\n* // returns NaN\n*/\nfunction log( x, b ) {\n\treturn ln( x ) / ln( b );\n}\n\n\n// EXPORTS //\n\nexport default log;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport expm1 from './../../../../base/special/expm1';\nimport exp from './../../../../base/special/exp';\nimport log1p from './../../../../base/special/log1p';\nimport ln from './../../../../base/special/ln';\nimport abs from './../../../../base/special/abs';\nimport LN2 from '@stdlib/constants/float64/ln-two';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Computes the natural logarithm of \\\\( 1-\\exp(-|x|) \\\\).\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = log1mexp( 1.1 );\n* // returns ~-0.40477\n*\n* @example\n* var v = log1mexp( 0.0 );\n* // returns -Infinity\n*\n* @example\n* var v = log1mexp( NaN );\n* // returns NaN\n*/\nfunction log1mexp( x ) {\n\tvar ax;\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn NINF;\n\t}\n\tax = abs( x );\n\tif ( 0.0 < ax && ax <= LN2 ) {\n\t\treturn ln( -expm1( -ax ) );\n\t}\n\t// Case: |x| > ln(2)\n\treturn log1p( -exp( -ax ) );\n}\n\n\n// EXPORTS //\n\nexport default log1mexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\nimport exp from './../../../../base/special/exp';\n\n\n// MAIN //\n\n/**\n* Computes the natural logarithm of \\\\( 1 + \\exp(x) \\\\).\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = log1pexp( 1.1 );\n* // returns ~1.387\n*\n* @example\n* var v = log1pexp( 100.0 );\n* // returns 100.0\n*\n* @example\n* var v = log1pexp( NaN );\n* // returns NaN\n*/\nfunction log1pexp( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x <= -37.0 ) {\n\t\treturn exp( x );\n\t}\n\tif ( x <= 18.0 ) {\n\t\treturn log1p( exp( x ) );\n\t}\n\tif ( x <= 33.3 ) {\n\t\treturn x + exp( -x );\n\t}\n\t// Case: x > 33.3\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default log1pexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isProbability from './../../../../base/assert/is-probability';\nimport isnan from './../../../../base/assert/is-nan';\nimport ln from './../../../../base/special/ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Evaluates the logit function.\n*\n* @param {Probability} p - input value\n* @returns {number} function value\n*\n* @example\n* var y = logit( 0.2 );\n* // returns ~-1.386\n*\n* @example\n* var y = logit( 0.9 );\n* // returns ~2.197\n*\n* @example\n* var y = logit( -4.0 );\n* // returns NaN\n*\n* @example\n* var y = logit( 1.5 );\n* // returns NaN\n*\n* @example\n* var y = logit( NaN );\n* // returns NaN\n*/\nfunction logit( p ) {\n\tif ( isnan( p ) ) {\n\t\treturn p;\n\t}\n\tif ( !isProbability( p ) ) {\n\t\treturn NaN;\n\t}\n\tif ( p === 0.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( p === 1.0 ) {\n\t\treturn PINF;\n\t}\n\treturn ln( p / ( 1.0-p ) );\n}\n\n\n// EXPORTS //\n\nexport default logit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Split a double-precision floating-point number into a normalized fraction and an integer power of two.\n*\n* @module @stdlib/math/base/special/frexp\n*\n* @example\n* import frexp from '@stdlib/math/base/special/frexp';\n*\n* var out = frexp( 4.0 );\n* // returns [ 0.5, 3 ]\n*\n* out = frexp( 0.0 );\n* // returns [ 0.0, 0 ]\n*\n* out = frexp( -0.0 );\n* // returns [ -0.0, 0 ]\n*\n* out = frexp( NaN );\n* // returns [ NaN, 0 ]\n*\n* out = frexp( Infinity );\n* // returns [ Infinity , 0 ]\n*\n* out = frexp( -Infinity );\n* // returns [ -Infinity , 0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import frexp from '@stdlib/math/base/special/frexp';\n*\n* var out = new Float64Array( 2 );\n*\n* var y = frexp.assign( 4.0, out, 1, 0 );\n* // returns [ 0.5, 3 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPositiveZero from './../../../../base/assert/is-positive-zero';\nimport isnan from './../../../../base/assert/is-nan';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the maximum value.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {number} maximum value\n*\n* @example\n* var v = maxn( 3.14, 4.2 );\n* // returns 4.2\n*\n* @example\n* var v = maxn( 5.9, 3.14, 4.2 );\n* // returns 5.9\n*\n* @example\n* var v = maxn( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = maxn( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction maxn( x, y ) {\n\tvar len;\n\tvar m;\n\tvar v;\n\tvar i;\n\n\tlen = arguments.length;\n\tif ( len === 2 ) {\n\t\tif ( isnan( x ) || isnan( y ) ) {\n\t\t\treturn NaN;\n\t\t}\n\t\tif ( x === PINF || y === PINF ) {\n\t\t\treturn PINF;\n\t\t}\n\t\tif ( x === y && x === 0.0 ) {\n\t\t\tif ( isPositiveZero( x ) ) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn y;\n\t\t}\n\t\tif ( x > y ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tm = NINF;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( isnan( v ) || v === PINF ) {\n\t\t\treturn v;\n\t\t}\n\t\tif ( v > m ) {\n\t\t\tm = v;\n\t\t} else if (\n\t\t\tv === m &&\n\t\t\tv === 0.0 &&\n\t\t\tisPositiveZero( v )\n\t\t) {\n\t\t\tm = v;\n\t\t}\n\t}\n\treturn m;\n}\n\n\n// EXPORTS //\n\nexport default maxn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport isnan from './../../../../base/assert/is-nan';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {number} minimum value\n*\n* @example\n* var v = minn( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = minn( 5.9, 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = minn( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = minn( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction minn( x, y ) {\n\tvar len;\n\tvar m;\n\tvar v;\n\tvar i;\n\n\tlen = arguments.length;\n\tif ( len === 2 ) {\n\t\tif ( isnan( x ) || isnan( y ) ) {\n\t\t\treturn NaN;\n\t\t}\n\t\tif ( x === NINF || y === NINF ) {\n\t\t\treturn NINF;\n\t\t}\n\t\tif ( x === y && x === 0.0 ) {\n\t\t\tif ( isNegativeZero( x ) ) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn y;\n\t\t}\n\t\tif ( x < y ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tm = PINF;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( isnan( v ) || v === NINF ) {\n\t\t\treturn v;\n\t\t}\n\t\tif ( v < m ) {\n\t\t\tm = v;\n\t\t} else if (\n\t\t\tv === m &&\n\t\t\tv === 0.0 &&\n\t\t\tisNegativeZero( v )\n\t\t) {\n\t\t\tm = v;\n\t\t}\n\t}\n\treturn m;\n}\n\n\n// EXPORTS //\n\nexport default minn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum values and assigns results to a provided output array.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} minimum and maximum values\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmax( 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 4.2 ]\n*\n* var bool = ( v === out );\n* // returns true\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmax( 3.14, NaN, out, 1, 0 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmax( +0.0, -0.0, out, 1, 0 );\n* // returns [ -0.0, 0.0 ]\n*/\nfunction minmax( x, y, out, stride, offset ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\tif ( x === y && x === 0.0 ) {\n\t\tif ( isNegativeZero( x ) ) {\n\t\t\tout[ offset ] = x;\n\t\t\tout[ offset + stride ] = y;\n\t\t\treturn out;\n\t\t}\n\t\tout[ offset ] = y;\n\t\tout[ offset + stride ] = x;\n\t\treturn out;\n\t}\n\tif ( x < y ) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = y;\n\t\treturn out;\n\t}\n\tout[ offset ] = y;\n\tout[ offset + stride ] = x;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmax;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum values.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {Array} minimum and maximum values\n*\n* @example\n* var v = minmax( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* @example\n* var v = minmax( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var v = minmax( +0.0, -0.0 );\n* // returns [ -0.0, 0.0 ]\n*/\nfunction minmax( x, y ) {\n\treturn assign( x, y, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default minmax;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum absolute values.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @param {Collection} out - output object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} minimum and maximum absolute values\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabs( 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 4.2 ]\n*\n* var bool = ( v === out );\n* // returns true\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabs( -5.9, 3.14, out, 1, 0 );\n* // returns [ 3.14, 5.9 ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabs( 3.14, NaN, out, 1, 0 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabs( +0.0, -0.0, out, 1, 0 );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction minmaxabs( x, y, out, stride, offset ) {\n\tvar ax;\n\tvar ay;\n\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\tax = abs( x );\n\tay = abs( y );\n\tif ( ax < ay ) {\n\t\tout[ offset ] = ax;\n\t\tout[ offset + stride ] = ay;\n\t\treturn out;\n\t}\n\tout[ offset ] = ay;\n\tout[ offset + stride ] = ax;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport compute from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum absolute values.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {Array} minimum and maximum absolute values\n*\n* @example\n* var v = minmaxabs( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* @example\n* var v = minmaxabs( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var v = minmaxabs( +0.0, -0.0 );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction minmaxabs( x, y ) {\n\treturn compute( x, y, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default minmaxabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport abs from './../../../../base/special/abs';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum absolute values.\n*\n* @private\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {Collection} out - output object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} minimum and maximum absolute values\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabsn( 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 4.2 ]\n*\n* var bool = ( v === out );\n* // returns true\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabsn( -5.9, 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 5.9 ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabsn( 3.14, NaN, out, 1, 0 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxabsn( +0.0, -0.0, out, 1, 0 );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction minmaxabsn( x, y, out, stride, offset ) {\n\tvar len;\n\tvar min;\n\tvar max;\n\tvar ax;\n\tvar ay;\n\tvar av;\n\tvar v;\n\tvar i;\n\n\tlen = arguments.length;\n\n\tout = arguments[ len - 3 ];\n\tstride = arguments[ len - 2 ];\n\toffset = arguments[ len - 1 ];\n\n\tif ( len === 3 ) {\n\t\tout[ offset ] = PINF;\n\t\tout[ offset + stride ] = PINF;\n\t\treturn out;\n\t}\n\tif ( len === 4 ) {\n\t\tax = abs( x );\n\t\tout[ offset ] = ax;\n\t\tout[ offset + stride ] = ax;\n\t\treturn out;\n\t}\n\tif ( len === 5 ) {\n\t\tif ( isnan( x ) || isnan( y ) ) {\n\t\t\tout[ offset ] = NaN;\n\t\t\tout[ offset + stride ] = NaN;\n\t\t\treturn out;\n\t\t}\n\t\tax = abs( x );\n\t\tay = abs( y );\n\t\tif ( ax < ay ) {\n\t\t\tout[ offset ] = ax;\n\t\t\tout[ offset + stride ] = ay;\n\t\t\treturn out;\n\t\t}\n\t\tout[ offset ] = ay;\n\t\tout[ offset + stride ] = ax;\n\t\treturn out;\n\t}\n\tmin = PINF;\n\tmax = 0.0;\n\tfor ( i = 0; i < len - 3; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( isnan( v ) ) {\n\t\t\tout[ offset ] = NaN;\n\t\t\tout[ offset + stride ] = NaN;\n\t\t\treturn out;\n\t\t}\n\t\tav = abs( v );\n\t\tif ( av < min ) {\n\t\t\tmin = av;\n\t\t}\n\t\tif ( av > max ) {\n\t\t\tmax = av;\n\t\t}\n\t}\n\tout[ offset ] = min;\n\tout[ offset + stride ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxabsn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport compute from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum absolute values.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {Array} minimum and maximum absolute values\n*\n* @example\n* var v = minmaxabsn( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* @example\n* var v = minmaxabsn( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var v = minmaxabsn( +0.0, -0.0 );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction minmaxabsn() {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\targs.push( [ 0.0, 0.0 ], 1, 0 );\n\treturn compute.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default minmaxabsn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport isPositiveZero from './../../../../base/assert/is-positive-zero';\nimport isnan from './../../../../base/assert/is-nan';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum values and assigns results to a provided output array.\n*\n* @private\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} minimum and maximum values\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxn( 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 4.2 ]\n*\n* var bool = ( v === out );\n* // returns true\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxn( 5.9, 3.14, 4.2, out, 1, 0 );\n* // returns [ 3.14, 5.9 ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxn( 3.14, NaN, out, 1, 0 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var out = [ 0.0, 0.0 ];\n* var v = minmaxn( +0.0, -0.0, out, 1, 0 );\n* // returns [ -0.0, 0.0 ]\n*/\nfunction minmaxn( x, y, out, stride, offset ) {\n\tvar len;\n\tvar min;\n\tvar max;\n\tvar v;\n\tvar i;\n\n\tlen = arguments.length;\n\n\tout = arguments[ len - 3 ];\n\tstride = arguments[ len - 2 ];\n\toffset = arguments[ len - 1 ];\n\n\tif ( len === 4 ) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = x;\n\t\treturn out;\n\t}\n\tif ( len === 5 ) {\n\t\tif ( isnan( x ) || isnan( y ) ) {\n\t\t\tout[ offset ] = NaN;\n\t\t\tout[ offset + stride ] = NaN;\n\t\t\treturn out;\n\t\t}\n\t\tif ( x === y && x === 0.0 ) {\n\t\t\tif ( isNegativeZero( x ) ) {\n\t\t\t\tout[ offset ] = x;\n\t\t\t\tout[ offset + stride ] = y;\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\tout[ offset ] = y;\n\t\t\tout[ offset + stride ] = x;\n\t\t\treturn out;\n\t\t}\n\t\tif ( x < y ) {\n\t\t\tout[ offset ] = x;\n\t\t\tout[ offset + stride ] = y;\n\t\t\treturn out;\n\t\t}\n\t\tout[ offset ] = y;\n\t\tout[ offset + stride ] = x;\n\t\treturn out;\n\t}\n\tmin = PINF;\n\tmax = NINF;\n\tfor ( i = 0; i < len - 3; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( isnan( v ) ) {\n\t\t\tout[ offset ] = NaN;\n\t\t\tout[ offset + stride ] = NaN;\n\t\t\treturn out;\n\t\t}\n\t\tif ( v < min ) {\n\t\t\tmin = v;\n\t\t} else if (\n\t\t\tv === 0.0 &&\n\t\t\tv === min &&\n\t\t\tisNegativeZero( v )\n\t\t) {\n\t\t\tmin = v;\n\t\t}\n\t\tif ( v > max ) {\n\t\t\tmax = v;\n\t\t} else if (\n\t\t\tv === 0.0 &&\n\t\t\tv === max &&\n\t\t\tisPositiveZero( v )\n\t\t) {\n\t\t\tmax = v;\n\t\t}\n\t}\n\tout[ offset ] = min;\n\tout[ offset + stride ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the minimum and maximum values.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {Array} minimum and maximum values\n*\n* @example\n* var v = minmaxn( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* @example\n* var v = minmaxn( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var v = minmaxn( +0.0, -0.0 );\n* // returns [ -0.0, 0.0 ]\n*/\nfunction minmaxn() {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\targs.push( [ 0.0, 0.0 ], 1, 0 );\n\treturn assign.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default minmaxn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the minimum and maximum values.\n*\n* @module @stdlib/math/base/special/minmax\n*\n* @example\n* import minmax from '@stdlib/math/base/special/minmax';\n*\n* var v = minmax( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* v = minmax( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* v = minmax( +0.0, -0.0 );\n* // returns [ -0.0, 0.0 ]\n*\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport minmax from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( minmax, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default minmax;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the minimum and maximum absolute values.\n*\n* @module @stdlib/math/base/special/minmaxabs\n*\n* @example\n* import minmaxabs from '@stdlib/math/base/special/minmaxabs';\n*\n* var v = minmaxabs( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* v = minmaxabs( -5.9, 3.14 );\n* // returns [ 3.14, 5.9 ]\n*\n* v = minmaxabs( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* v = minmaxabs( +0.0, -0.0 );\n* // returns [ 0.0, 0.0 ]\n*\n* v = minmaxabs( 3.14 );\n* // returns [ 3.14, 3.14 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport minmaxabs from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( minmaxabs, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default minmaxabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the minimum and maximum absolute values.\n*\n* @module @stdlib/math/base/special/minmaxabsn\n*\n* @example\n* import minmaxabsn from '@stdlib/math/base/special/minmaxabsn';\n*\n* var v = minmaxabsn( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* v = minmaxabsn( -5.9, 3.14, 4.2 );\n* // returns [ 3.14, 5.9 ]\n*\n* v = minmaxabsn( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* v = minmaxabsn( +0.0, -0.0 );\n* // returns [ 0.0, 0.0 ]\n*\n* v = minmaxabsn( 3.14 );\n* // returns [ 3.14, 3.14 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport minmaxabsn from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( minmaxabsn, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default minmaxabsn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the minimum and maximum values.\n*\n* @module @stdlib/math/base/special/minmaxn\n*\n* @example\n* import minmaxn from '@stdlib/math/base/special/minmaxn';\n*\n* var v = minmaxn( 3.14, 4.2 );\n* // returns [ 3.14, 4.2 ]\n*\n* v = minmaxn( 5.9, 3.14, 4.2 );\n* // returns [ 3.14, 5.9 ]\n*\n* v = minmaxn( 3.14, NaN );\n* // returns [ NaN, NaN ]\n*\n* v = minmaxn( +0.0, -0.0 );\n* // returns [ -0.0, 0.0 ]\n*\n* v = minmaxn( 3.14 );\n* // returns [ 3.14, 3.14 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport assign from './assign.js';\nimport minmaxn from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( minmaxn, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default minmaxn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport toWords from '@stdlib/number/float64/base/to-words';\nimport fromWords from '@stdlib/number/float64/base/from-words';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport FLOAT64_EXPONENT_BIAS from '@stdlib/constants/float64/exponent-bias';\nimport FLOAT64_HIGH_WORD_EXPONENT_MASK from '@stdlib/constants/float64/high-word-exponent-mask'; // eslint-disable-line id-length\nimport FLOAT64_HIGH_WORD_SIGNIFICAND_MASK from '@stdlib/constants/float64/high-word-significand-mask'; // eslint-disable-line id-length\n\n\n// VARIABLES //\n\n// 4294967295 => 0xffffffff => 11111111111111111111111111111111\nvar ALL_ONES = 4294967295>>>0; // asm type annotation\n\n// High/low words workspace:\nvar WORDS = [ 0|0, 0|0 ];\n\n\n// MAIN //\n\n/**\n* Decomposes a double-precision floating-point number into integral and fractional parts, each having the same type and sign as the input value, and assigns results to a provided output array.\n*\n* @private\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var parts = modf( 3.14, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ 3.0, 0.14000000000000012 ]\n*/\nfunction modf( x, out, stride, offset ) {\n\tvar high;\n\tvar low;\n\tvar exp;\n\tvar i;\n\n\t// Special cases...\n\tif ( x < 1.0 ) {\n\t\tif ( x < 0.0 ) {\n\t\t\tmodf( -x, out, stride, offset );\n\t\t\tout[ offset ] *= -1.0;\n\t\t\tout[ offset + stride ] *= -1.0;\n\t\t\treturn out;\n\t\t}\n\t\tif ( x === 0.0 ) { // [ +-0, +-0 ]\n\t\t\tout[ offset ] = x;\n\t\t\tout[ offset + stride ] = x;\n\t\t\treturn out;\n\t\t}\n\t\tout[ offset ] = 0.0;\n\t\tout[ offset + stride ] = x;\n\t\treturn out;\n\t}\n\tif ( isnan( x ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\tif ( x === PINF ) {\n\t\tout[ offset ] = PINF;\n\t\tout[ offset + stride ] = 0.0;\n\t\treturn out;\n\t}\n\t// Decompose |x|...\n\n\t// Extract the high and low words:\n\ttoWords.assign( x, WORDS, 1, 0 );\n\thigh = WORDS[ 0 ];\n\tlow = WORDS[ 1 ];\n\n\t// Extract the unbiased exponent from the high word:\n\texp = ((high & FLOAT64_HIGH_WORD_EXPONENT_MASK) >> 20)|0; // asm type annotation\n\texp -= FLOAT64_EXPONENT_BIAS|0; // asm type annotation\n\n\t// Handle smaller values (x < 2**20 = 1048576)...\n\tif ( exp < 20 ) {\n\t\ti = (FLOAT64_HIGH_WORD_SIGNIFICAND_MASK >> exp)|0; // asm type annotation\n\n\t\t// Determine if `x` is integral by checking for significand bits which cannot be exponentiated away...\n\t\tif ( ((high&i)|low) === 0 ) {\n\t\t\tout[ offset ] = x;\n\t\t\tout[ offset + stride ] = 0.0;\n\t\t\treturn out;\n\t\t}\n\t\t// Turn off all the bits which cannot be exponentiated away:\n\t\thigh &= (~i);\n\n\t\t// Generate the integral part:\n\t\ti = fromWords( high, 0 );\n\n\t\t// The fractional part is whatever is leftover:\n\t\tout[ offset ] = i;\n\t\tout[ offset + stride ] = x - i;\n\t\treturn out;\n\t}\n\t// Check if `x` can even have a fractional part...\n\tif ( exp > 51 ) {\n\t\t// `x` is integral:\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = 0.0;\n\t\treturn out;\n\t}\n\ti = ALL_ONES >>> (exp-20);\n\n\t// Determine if `x` is integral by checking for less significant significand bits which cannot be exponentiated away...\n\tif ( (low&i) === 0 ) {\n\t\tout[ offset ] = x;\n\t\tout[ offset + stride ] = 0.0;\n\t\treturn out;\n\t}\n\t// Turn off all the bits which cannot be exponentiated away:\n\tlow &= (~i);\n\n\t// Generate the integral part:\n\ti = fromWords( high, low );\n\n\t// The fractional part is whatever is leftover:\n\tout[ offset ] = i;\n\tout[ offset + stride ] = x - i;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default modf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Decomposes a double-precision floating-point number into integral and fractional parts, each having the same type and sign as the input value.\n*\n* @param {number} x - input value\n* @returns {Array} output array\n*\n* @example\n* var parts = modf( 3.14 );\n* // returns [ 3.0, 0.14000000000000012 ]\n*\n*/\nfunction modf( x ) {\n\treturn fcn( x, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default modf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Decompose a double-precision floating-point number into integral and fractional parts.\n*\n* @module @stdlib/math/base/special/modf\n*\n* @example\n* import modf from '@stdlib/math/base/special/modf';\n*\n* var parts = modf( 3.14 );\n* // returns [ 3.0, 0.14000000000000012 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import modf from '@stdlib/math/base/special/modf';\n*\n* var out = new Float64Array( 2 );\n*\n* var parts = modf.assign( 3.14, out, 1, 0 );\n* // returns [ 3.0, 0.14000000000000012 ]\n*\n* var bool = ( parts === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport ln from './../../../../base/special/ln';\nimport floor from './../../../../base/special/floor';\nimport PHI from '@stdlib/constants/float64/phi';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar SQRT_5 = 2.23606797749979;\nvar LN_PHI = ln( PHI );\n\n\n// MAIN //\n\n/**\n* Computes the nth non-Fibonacci number.\n*\n* ## References\n*\n* - Gould, H.W. 1965. \"Non-Fibonacci Numbers.\" _Fibonacci Quarterly_, no. 3: 177–83. .\n* - Farhi, Bakir. 2011. \"An explicit formula generating the non-Fibonacci numbers.\" _arXiv_ abs/1105.1127 \\[Math.NT\\] (May): 1–5. .\n*\n* @param {NonNegativeInteger} n - the non-Fibonacci number to compute\n* @returns {NonNegativeInteger} non-Fibonacci number\n*\n* @example\n* var v = nonfibonacci( 1 );\n* // returns 4\n*\n* @example\n* var v = nonfibonacci( 2 );\n* // returns 6\n*\n* @example\n* var v = nonfibonacci( 3 );\n* // returns 7\n*\n* @example\n* var v = nonfibonacci( NaN );\n* // returns NaN\n*\n* @example\n* var v = nonfibonacci( 3.14 );\n* // returns NaN\n*\n* @example\n* var v = nonfibonacci( -1 );\n* // returns NaN\n*/\nfunction nonfibonacci( n ) {\n\tvar a;\n\tvar b;\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn < 1 ||\n\t\tn === PINF\n\t) {\n\t\treturn NaN;\n\t}\n\tn += 1;\n\ta = ln( n * SQRT_5 ) / LN_PHI;\n\tb = ln( (SQRT_5 * (n+a)) - 5.0 + (3.0/n) ) / LN_PHI;\n\treturn floor( n + b - 2.0 );\n}\n\n\n// EXPORTS //\n\nexport default nonfibonacci;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_85_0/boost/math/special_functions/trigamma.hpp}. The implementation follows the original but has been reformatted and modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\nimport sinpi from './../../../../base/special/sinpi';\nimport PI_SQUARED from '@stdlib/constants/float64/pi-squared';\nimport rateval12 from './rational_p12q12.js';\nimport rateval24 from './rational_p24q24.js';\nimport rateval48 from './rational_p48q48.js';\nimport rateval816 from './rational_p816q816.js';\nimport rateval16INF from './rational_p16infq16inf.js';\n\n\n// VARIABLES //\n\nvar YOFFSET24 = 3.558437347412109375;\n\n\n// MAIN //\n\n/**\n* Evaluates the trigamma function.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = trigamma( -2.5 );\n* // returns ~9.539\n*\n* @example\n* var v = trigamma( 1.0 );\n* // returns ~1.645\n*\n* @example\n* var v = trigamma( 10.0 );\n* // returns ~0.105\n*\n* @example\n* var v = trigamma( NaN );\n* // returns NaN\n*\n* @example\n* var v = trigamma( -1.0 );\n* // returns NaN\n*/\nfunction trigamma( x ) {\n\tvar result;\n\tvar s;\n\tvar y;\n\tvar z;\n\n\tresult = 0.0;\n\n\t// Check for negative arguments and use reflection:\n\tif ( x <= 0 ) {\n\t\tif ( floor( x ) === x ) {\n\t\t\treturn NaN;\n\t\t}\n\t\ts = sinpi( x );\n\t\tz = 1.0 - x;\n\t\treturn -trigamma( z ) + ( PI_SQUARED / ( s*s ) );\n\t}\n\tif ( x < 1.0 ) {\n\t\tresult = 1.0 / ( x*x );\n\t\tx += 1.0;\n\t}\n\tif ( x <= 2.0 ) {\n\t\tresult += ( 2.0+rateval12( x ) ) / ( x*x );\n\t}\n\telse if ( x <= 4.0 ) {\n\t\tresult += ( YOFFSET24+rateval24( x ) ) / ( x*x );\n\t}\n\telse if ( x <= 8.0 ) {\n\t\ty = 1.0 / x;\n\t\tresult += ( 1.0+rateval48( y ) ) / x;\n\t}\n\telse if ( x <= 16.0 ) {\n\t\ty = 1.0 / x;\n\t\tresult += ( 1.0+rateval816( y ) ) / x;\n\t}\n\telse {\n\t\ty = 1.0 / x;\n\t\tresult += ( 1.0+rateval16INF( y ) ) / x;\n\t}\n\treturn result;\n}\n\n\n// EXPORTS //\n\nexport default trigamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -0.9999999999999991;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -0.9999999999999991 + (x * (-4.712373111208652 + (x * (-7.94125711970499 + (x * (-5.746577466976647 + (x * (-0.4042133494563989 + (x * (2.4787778117864288 + (x * (2.0771415170245513 + (x * (0.8588778991623601 + (x * (0.20499222604410033 + (x * (0.027210314034819473 + (x * 0.001576484902087695))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (4.712373111208634 + (x * (9.586191186553398 + (x * (11.094006726982938 + (x * (8.090754247493278 + (x * (3.877058901598914 + (x * (1.2275867870191448 + (x * (0.249092040606385 + (x * (0.02957504139006556 + (x * (0.0015764849020049815 + (x * 1.6126405034405948e-15))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.001576484902087695 + (x * (0.027210314034819473 + (x * (0.20499222604410033 + (x * (0.8588778991623601 + (x * (2.0771415170245513 + (x * (2.4787778117864288 + (x * (-0.4042133494563989 + (x * (-5.746577466976647 + (x * (-7.94125711970499 + (x * (-4.712373111208652 + (x * -0.9999999999999991))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.6126405034405948e-15 + (x * (0.0015764849020049815 + (x * (0.02957504139006556 + (x * (0.249092040606385 + (x * (1.2275867870191448 + (x * (3.877058901598914 + (x * (8.090754247493278 + (x * (11.094006726982938 + (x * (9.586191186553398 + (x * (4.712373111208634 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -2.5584373473990794;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -2.5584373473990794 + (x * (-12.283020824054201 + (x * (-23.9195022162768 + (x * (-24.925643150482347 + (x * (-14.797912276547878 + (x * (-4.466544539286106 + (x * (-0.01914390334056497 + (x * (0.5154120525543513 + (x * (0.1953783487860643 + (x * (0.03347612826241743 + (x * (0.0023736652059422065 + (x * 0.0))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (4.800985584544199 + (x * (9.992207278431701 + (x * (11.889614616763133 + (x * (8.966132566838091 + (x * (4.4725413614962415 + (x * (1.4860098202819654 + (x * (0.31957073576676426 + (x * (0.040735834578768094 + (x * (0.0023736652059327163 + (x * (2.3955488790352614e-16 + (x * -2.9474924474061867e-18))))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (0.0023736652059422065 + (x * (0.03347612826241743 + (x * (0.1953783487860643 + (x * (0.5154120525543513 + (x * (-0.01914390334056497 + (x * (-4.466544539286106 + (x * (-14.797912276547878 + (x * (-24.925643150482347 + (x * (-23.9195022162768 + (x * (-12.283020824054201 + (x * -2.5584373473990794))))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -2.9474924474061867e-18 + (x * (2.3955488790352614e-16 + (x * (0.0023736652059327163 + (x * (0.040735834578768094 + (x * (0.31957073576676426 + (x * (1.4860098202819654 + (x * (4.4725413614962415 + (x * (8.966132566838091 + (x * (11.889614616763133 + (x * (9.992207278431701 + (x * (4.800985584544199 + (x * 1.0))))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 1.6662611269702147e-17;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 1.6662611269702147e-17 + (x * (0.4999999999999977 + (x * (6.402709450190538 + (x * (41.38333741550006 + (x * (166.8033418545628 + (x * (453.39964786925367 + (x * (851.153712317697 + (x * (1097.7065756728507 + (x * (938.4312324784553 + (x * (487.26800160465194 + (x * 119.95344524233573))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (12.472085567047449 + (x * (78.60931297532986 + (x * (307.47024605031834 + (x * (805.1406861011516 + (x * (1439.1201976029215 + (x * (1735.6105285756048 + (x * (1348.3250071285634 + (x * (607.2259858605709 + (x * (119.95231785727705 + (x * 0.00014016591835503607))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 119.95344524233573 + (x * (487.26800160465194 + (x * (938.4312324784553 + (x * (1097.7065756728507 + (x * (851.153712317697 + (x * (453.39964786925367 + (x * (166.8033418545628 + (x * (41.38333741550006 + (x * (6.402709450190538 + (x * (0.4999999999999977 + (x * 1.6662611269702147e-17))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 0.00014016591835503607 + (x * (119.95231785727705 + (x * (607.2259858605709 + (x * (1348.3250071285634 + (x * (1735.6105285756048 + (x * (1439.1201976029215 + (x * (805.1406861011516 + (x * (307.47024605031834 + (x * (78.60931297532986 + (x * (12.472085567047449 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn -1.848283152741466e-20;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = -1.848283152741466e-20 + (x * (0.5 + (x * (3.0253386524731334 + (x * (13.599592751745737 + (x * (35.31322242830879 + (x * (67.16394245507142 + (x * (83.5767733658514 + (x * (71.07349121223571 + (x * (35.86215156147256 + (x * 8.721522316399835))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (5.717343971612935 + (x * (25.29340417962044 + (x * (62.26197679674682 + (x * (113.955048909239 + (x * (130.80713832893898 + (x * (102.42314690233765 + (x * (44.04247728052452 + (x * (8.89898032477904 + (x * -0.029662733687204))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 8.721522316399835 + (x * (35.86215156147256 + (x * (71.07349121223571 + (x * (83.5767733658514 + (x * (67.16394245507142 + (x * (35.31322242830879 + (x * (13.599592751745737 + (x * (3.0253386524731334 + (x * (0.5 + (x * -1.848283152741466e-20))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = -0.029662733687204 + (x * (8.89898032477904 + (x * (44.04247728052452 + (x * (102.42314690233765 + (x * (130.80713832893898 + (x * (113.955048909239 + (x * (62.26197679674682 + (x * (25.29340417962044 + (x * (5.717343971612935 + (x * 1.0))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)).\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*/\nfunction evalrational( x ) {\n\tvar ax;\n\tvar s1;\n\tvar s2;\n\tif ( x === 0.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x < 0.0 ) {\n\t\tax = -x;\n\t} else {\n\t\tax = x;\n\t}\n\tif ( ax <= 1.0 ) {\n\t\ts1 = 0.0 + (x * (0.5 + (x * (0.34562566988545623 + (x * (9.628954993608422 + (x * (3.5936085382439025 + (x * (49.45959911843888 + (x * (7.775192373218939 + (x * (74.4536074488178 + (x * (2.7520934039706906 + (x * (23.92923597114717 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 1.0 + (x * (0.3579180064375791 + (x * (19.138603985070986 + (x * (0.8743490814641436 + (x * (98.65160974348555 + (x * (-16.10519728333829 + (x * (154.31686021625373 + (x * (-40.2026880424379 + (x * (60.167913667426475 + (x * (-13.341484462225642 + (x * 2.537956362006499))))))))))))))))))); // eslint-disable-line max-len\n\t} else {\n\t\tx = 1.0 / x;\n\t\ts1 = 0.0 + (x * (23.92923597114717 + (x * (2.7520934039706906 + (x * (74.4536074488178 + (x * (7.775192373218939 + (x * (49.45959911843888 + (x * (3.5936085382439025 + (x * (9.628954993608422 + (x * (0.34562566988545623 + (x * (0.5 + (x * 0.0))))))))))))))))))); // eslint-disable-line max-len\n\t\ts2 = 2.537956362006499 + (x * (-13.341484462225642 + (x * (60.167913667426475 + (x * (-40.2026880424379 + (x * (154.31686021625373 + (x * (-16.10519728333829 + (x * (98.65160974348555 + (x * (0.8743490814641436 + (x * (19.138603985070986 + (x * (0.3579180064375791 + (x * 1.0))))))))))))))))))); // eslint-disable-line max-len\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_65_0/boost/math/special_functions/detail/polygamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright Nikhar Agrawal 2013.\n* (C) Copyright Christopher Kormanyos 2013.\n* (C) Copyright John Maddock 2014.\n* (C) Copyright Paul Bristow 2013.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport bernoulli from './../../../../base/special/bernoulli';\nimport factorial from './../../../../base/special/factorial';\nimport gammaln from './../../../../base/special/gammaln';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport LN_TWO from '@stdlib/constants/float64/ln-two';\nimport EPS from '@stdlib/constants/float64/eps';\n\n\n// VARIABLES //\n\nvar debug = logger( 'polygamma' );\nvar MAX_SERIES_ITERATIONS = 1000000;\nvar MAX_FACTORIAL = 172;\n\n\n// MAIN //\n\n/**\n* Evaluates the polygamma function for large values of `x` such as for `x > 400`.\n*\n* @private\n* @param {PositiveInteger} n - derivative to evaluate\n* @param {number} x - input\n* @returns {number} (n+1)'th derivative\n* @see {@link http://functions.wolfram.com/GammaBetaErf/PolyGamma2/06/02/0001/}\n*/\nfunction atinfinityplus( n, x ) {\n\tvar partTerm; // Value of current term excluding the Bernoulli number part\n\tvar xsquared;\n\tvar term; // Value of current term to be added to sum\n\tvar sum; // Current value of accumulated sum\n\tvar nlx;\n\tvar k2;\n\tvar k;\n\n\tif ( n+x === x ) {\n\t\t// If `x` is very large, just concentrate on the first part of the expression and use logs:\n\t\tif ( n === 1 ) {\n\t\t\treturn 1.0 / x;\n\t\t}\n\t\tnlx = n * ln( x );\n\t\tif ( nlx < MAX_LN && n < MAX_FACTORIAL ) {\n\t\t\treturn ( (n & 1) ? 1.0 : -1.0 ) * factorial( n-1 ) * pow( x, -n );\n\t\t}\n\t\treturn ( (n & 1) ? 1.0 : -1.0 ) * exp( gammaln( n ) - ( n*ln(x) ) );\n\t}\n\txsquared = x * x;\n\n\t// Start by setting `partTerm` to `(n-1)! / x^(n+1)`, which is common to both the first term of the series (with k = 1) and to the leading part. We can then get to the leading term by: `partTerm * (n + 2 * x) / 2` and to the first term in the series (excluding the Bernoulli number) by: `partTerm n * (n + 1) / (2x)`. If either the factorial would over- or the power term underflow, set `partTerm` to 0 and then we know that we have to use logs for the initial terms:\n\tif ( n > MAX_FACTORIAL && n*n > MAX_LN ) {\n\t\tpartTerm = 0.0;\n\t} else {\n\t\tpartTerm = factorial( n-1 ) * pow( x, -n-1 );\n\t}\n\tif ( partTerm === 0.0 ) {\n\t\t// Either `n` is very large, or the power term underflows. Set the initial values of `partTerm`, `term`, and `sum` via logs:\n\t\tpartTerm = gammaln(n) - ( (n+1) * ln(x) );\n\t\tsum = exp( partTerm + ln( n + (2.0*x) ) - LN_TWO );\n\t\tpartTerm += ln( n*(n+1) ) - LN_TWO - ln(x);\n\t\tpartTerm = exp( partTerm );\n\t} else {\n\t\tsum = partTerm * ( n+(2.0*x) ) / 2.0;\n\t\tpartTerm *= ( n*(n+1) ) / 2.0;\n\t\tpartTerm /= x;\n\t}\n\t// If the leading term is 0, so is the result:\n\tif ( sum === 0.0 ) {\n\t\treturn sum;\n\t}\n\tfor ( k = 1; ; ) {\n\t\tterm = partTerm * bernoulli( k*2 );\n\t\tsum += term;\n\n\t\t// Normal termination condition:\n\t\tif ( abs( term/sum ) < EPS ) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// Increment our counter, and move `partTerm` on to the next value:\n\t\tk += 1;\n\t\tk2 = 2 * k;\n\t\tpartTerm *= ( n+k2-2 ) * ( n-1+k2 );\n\t\tpartTerm /= ( k2-1 ) * k2;\n\t\tpartTerm /= xsquared;\n\t\tif ( k > MAX_SERIES_ITERATIONS ) {\n\t\t\tdebug( 'Series did not converge, closest value was: %d.', sum );\n\t\t\treturn NaN;\n\t\t}\n\t}\n\tif ( ( n-1 ) & 1 ) {\n\t\tsum = -sum;\n\t}\n\treturn sum;\n}\n\n\n// EXPORTS //\n\nexport default atinfinityplus;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_65_0/boost/math/special_functions/detail/polygamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright Nikhar Agrawal 2013.\n* (C) Copyright Christopher Kormanyos 2013.\n* (C) Copyright John Maddock 2014.\n* (C) Copyright Paul Bristow 2013.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport factorial from './../../../../base/special/factorial';\nimport gammaln from './../../../../base/special/gammaln';\nimport trunc from './../../../../base/special/trunc';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport atinfinityplus from './atinfinityplus.js';\n\n\n// VARIABLES //\n\nvar debug = logger( 'polygamma' );\nvar MAX_SERIES_ITERATIONS = 1000000;\nvar DIGITS_BASE10 = 19;\n\n\n// MAIN //\n\n/**\n* Evaluates the polygamma function.\n*\n* @private\n* @param {PositiveInteger} n - derivative to evaluate\n* @param {number} x - input\n* @returns {number} (n+1)'th derivative\n* @see {@link http://functions.wolfram.com/GammaBetaErf/PolyGamma2/16/01/01/0017/}\n*/\nfunction attransitionplus( n, x ) {\n\tvar minusMminus1;\n\tvar lnterm;\n\tvar zpows;\n\tvar iter;\n\tvar sum0;\n\tvar d4d;\n\tvar N;\n\tvar m;\n\tvar k;\n\tvar z;\n\n\t// Use N = (0.4 * digits) + (4 * n) for target value for x:\n\td4d = 0.4 * DIGITS_BASE10;\n\tN = d4d + ( 4*n );\n\tm = n;\n\titer = N - trunc( x );\n\n\tif ( iter > MAX_SERIES_ITERATIONS ) {\n\t\tdebug( 'Exceeded maximum series evaluations when evaluated at n = %d and x = %d', n, x );\n\t\treturn NaN;\n\t}\n\tminusMminus1 = -m - 1;\n\tz = x;\n\tsum0 = 0.0;\n\tzpows = 0.0;\n\n\t// Forward recursion to larger `x`, need to check for overflow first though:\n\tif ( ln( z+iter ) * minusMminus1 > -MAX_LN ) {\n\t\tfor ( k = 1; k <= iter; k++ ) {\n\t\t\tzpows = pow( z, minusMminus1 );\n\t\t\tsum0 += zpows;\n\t\t\tz += 1;\n\t\t}\n\t\tsum0 *= factorial( n );\n\t} else {\n\t\tfor ( k = 1; k <= iter; k++ ) {\n\t\t\tlnterm = ( ln( z ) * minusMminus1 ) + gammaln( n+1 );\n\t\t\tsum0 += exp( lnterm );\n\t\t\tz += 1;\n\t\t}\n\t}\n\tif ( ( n-1 ) & 1 ) {\n\t\tsum0 = -sum0;\n\t}\n\treturn sum0 + atinfinityplus( n, z );\n}\n\n\n// EXPORTS //\n\nexport default attransitionplus;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_65_0/boost/math/special_functions/detail/polygamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright Nikhar Agrawal 2013.\n* (C) Copyright Christopher Kormanyos 2013.\n* (C) Copyright John Maddock 2014.\n* (C) Copyright Paul Bristow 2013.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport gammaln from './../../../../base/special/gammaln';\nimport signum from './../../../../base/special/signum';\nimport cospi from './../../../../base/special/cospi';\nimport sinpi from './../../../../base/special/sinpi';\nimport abs from './../../../../base/special/abs';\nimport exp from './../../../../base/special/exp';\nimport pow from './../../../../base/special/pow';\nimport ln from './../../../../base/special/ln';\nimport MAX_LN from '@stdlib/constants/float64/max-ln';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport LN_PI from '@stdlib/constants/float64/ln-pi';\nimport PI from '@stdlib/constants/float64/pi';\nimport zeros from '@stdlib/array/base/zeros';\nimport polyval3 from './polyval_p3.js';\nimport polyval4 from './polyval_p4.js';\nimport polyval5 from './polyval_p5.js';\nimport polyval6 from './polyval_p6.js';\nimport polyval7 from './polyval_p7.js';\nimport polyval8 from './polyval_p8.js';\nimport polyval9 from './polyval_p9.js';\nimport polyval10 from './polyval_p10.js';\nimport polyval11 from './polyval_p11.js';\nimport polyval12 from './polyval_p12.js';\n\n\n// VARIABLES //\n\nvar debug = logger( 'polygamma' );\nvar MAX_SERIES_ITERATIONS = 1000000;\n\n// π raised to powers two to twelve (obtained from Wolfram Alpha):\nvar PI2 = 9.869604401089358;\nvar PI3 = 31.00627668029982;\nvar PI4 = 97.40909103400244;\nvar PI5 = 306.01968478528147;\nvar PI6 = 961.3891935753045;\nvar PI7 = 3020.2932277767923;\nvar PI8 = 9488.531016070574;\nvar PI9 = 29809.09933344621;\nvar PI10 = 93648.04747608303;\nvar PI11 = 294204.0179738906;\nvar PI12 = 924269.1815233742;\n\n// Derivative memoization table:\nvar table = [\n\t[ -1.0 ]\n];\n\n\n// FUNCTIONS //\n\n/**\n* Updates the derivatives table.\n*\n* @private\n* @param {PositiveInteger} n - derivative\n*/\nfunction calculateDerivatives( n ) {\n\tvar noffset; // offset for next row\n\tvar offset; // 1 if the first cos power is 0; otherwise 0\n\tvar ncols; // how many entries there are in the current row\n\tvar mcols; // how many entries there will be in the next row\n\tvar mo; // largest order of the polynomial of cos terms\n\tvar so; // order of the sin term\n\tvar co; // order of the cosine term in entry \"j\"\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tfor ( i = table.length-1; i < n-1; i++ ) {\n\t\toffset = ( i&1 )|0;\n\t\tso = ( i+2 )|0;\n\t\tmo = ( so-1 )|0;\n\t\tncols = ( (mo-offset)/2 )|0;\n\t\tnoffset = ( offset ) ? 0 : 1;\n\t\tmcols = ( (mo+1-noffset)/2 )|0;\n\t\ttable.push( zeros( mcols+1 ) );\n\t\tfor ( j = 0; j <= ncols; j++ ) {\n\t\t\tco = ( (2*j)+offset )|0;\n\t\t\tk = ( (co+1)/2 )|0;\n\t\t\ttable[ i+1 ][ k ] += ((co-so)*table[i][j]) / (so-1);\n\t\t\tif ( co ) {\n\t\t\t\tk = ( (co-1)/2 )|0;\n\t\t\t\ttable[ i+1 ][ k ] += (-co*table[i][j]) / (so-1);\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Returns n'th derivative of \\\\(\\operatorname{cot|(\\pi x)\\\\) at \\\\(x\\\\).\n*\n* ## Notes\n*\n* - The derivatives are simply tabulated for up to \\\\(n = 9\\\\), beyond that it is possible to calculate coefficients as follows. The general form of each derivative is:\n*\n* ```tex\n* \\pi^n * \\sum_{k=0}^n C[k,n] \\cdot \\cos^k(\\pi \\cdot x) \\cdot \\operatorname{csc}^{(n+1)}(\\pi \\cdot x)\n* ```\n*\n* with constant \\\\( C\\[0,1\\] = -1 \\\\) and all other \\\\( C\\[k,n\\] = 0 \\)). Then for each \\\\( k < n+1 \\\\):\n*\n* ```tex\n* \\begin{align*}\n* C[k-1, n+1] &-= k * C[k, n]; \\\\\n* C[k+1, n+1] &+= (k-n-1) * C[k, n];\n* \\end{align*}\n* ```\n*\n* - Note that there are many different ways of representing this derivative thanks to the many trigonometric identities available. In particular, the sum of powers of cosines could be replaced by a sum of cosine multiple angles, and, indeed, if you plug the derivative into Mathematica, this is the form it will give. The two forms are related via the Chebeshev polynomials of the first kind and \\\\( T_n(\\cos(x)) = \\cos(n x) \\\\). The polynomial form has the great advantage that all the cosine terms are zero at half integer arguments - right where this function has it's minimum - thus avoiding cancellation error in this region.\n*\n* - And finally, since every other term in the polynomials is zero, we can save space by only storing the non-zero terms. This greatly increases complexity when subscripting the tables in the calculation, but halves the storage space (and complexity for that matter).\n*\n* @private\n* @param {PositiveInteger} n - derivative to evaluate\n* @param {number} x - input\n* @param {number} xc - one minus `x`\n* @returns {number} n'th derivative\n*/\nfunction polycotpi( n, x, xc ) {\n\tvar powTerms;\n\tvar idx;\n\tvar out;\n\tvar sum;\n\tvar c;\n\tvar s;\n\n\ts = ( abs( x ) < abs( xc ) ) ? sinpi( x ) : sinpi( xc );\n\tc = cospi( x );\n\tswitch ( n ) { // eslint-disable-line default-case\n\tcase 1:\n\t\treturn -PI / ( s * s );\n\tcase 2:\n\t\treturn 2.0 * PI2 * c / pow( s, 3.0 );\n\tcase 3:\n\t\treturn PI3 * polyval3( c*c ) / pow( s, 4.0 );\n\tcase 4:\n\t\treturn PI4 * c * polyval4( c*c ) / pow( s, 5.0 );\n\tcase 5:\n\t\treturn PI5 * polyval5( c*c ) / pow( s, 6.0 );\n\tcase 6:\n\t\treturn PI6 * c * polyval6( c*c ) / pow( s, 7.0 );\n\tcase 7:\n\t\treturn PI7 * polyval7( c*c ) / pow( s, 8.0 );\n\tcase 8:\n\t\treturn PI8 * c * polyval8( c*c ) / pow( s, 9.0 );\n\tcase 9:\n\t\treturn PI9 * polyval9( c*c ) / pow( s, 10.0 );\n\tcase 10:\n\t\treturn PI10 * c * polyval10( c*c ) / pow( s, 11.0 );\n\tcase 11:\n\t\treturn PI11 * polyval11( c*c ) / pow( s, 12.0 );\n\tcase 12:\n\t\treturn PI12 * c * polyval12( c*c ) / pow( s, 13.0 );\n\t}\n\t// We'll have to compute the coefficients up to `n`, complexity is O(n^2) which we don't worry about as the values are computed once and then cached. However, if the final evaluation would have too many terms just bail out right away:\n\tif ( n/2 > MAX_SERIES_ITERATIONS ) {\n\t\tdebug( 'The value of `n` is so large that we\\'re unable to compute the result in reasonable time.' );\n\t\treturn NaN;\n\t}\n\tidx = n - 1;\n\tif ( idx >= table.length ) {\n\t\t// Lazily calculate derivatives:\n\t\tcalculateDerivatives( n );\n\t}\n\tsum = evalpoly( table[ idx ], c*c );\n\tif ( idx & 1 ) {\n\t\tsum *= c; // First coefficient is order 1, and really an odd polynomial.\n\t}\n\tif ( sum === 0.0 ) {\n\t\treturn sum;\n\t}\n\t// The remaining terms are computed using logs since the powers and factorials get real large real quick:\n\tpowTerms = n * LN_PI;\n\tif ( s === 0.0 ) {\n\t\treturn ( sum >= 0.0 ) ? PINF : NINF;\n\t}\n\tpowTerms -= ln( abs( s ) ) * ( n+1 );\n\tpowTerms += gammaln( n ) + ln( abs(sum) );\n\n\tif ( powTerms > MAX_LN ) {\n\t\treturn ( sum >= 0.0 ) ? PINF : NINF;\n\t}\n\tout = exp( powTerms ) * signum( sum );\n\tif ( s < 0.0 && ( (n+1)&1 ) ) {\n\t\tout *= -1;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default polycotpi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -2.0;\n\t}\n\treturn -2.0 + (x * -4.0);\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 16.0;\n\t}\n\treturn 16.0 + (x * 8.0);\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -16.0;\n\t}\n\treturn -16.0 + (x * (-88.0 + (x * -16.0)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 272.0;\n\t}\n\treturn 272.0 + (x * (416.0 + (x * 32.0)));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -272.0;\n\t}\n\treturn -272.0 + (x * (-2880.0 + (x * (-1824.0 + (x * -64.0)))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 7936.0;\n\t}\n\treturn 7936.0 + (x * (24576.0 + (x * (7680.0 + (x * 128.0)))));\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -7936.0;\n\t}\n\treturn -7936.0 + (x * (-137216.0 + (x * (-185856.0 + (x * (-31616.0 + (x * -256.0))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 353792.0;\n\t}\n\treturn 353792.0 + (x * (1841152.0 + (x * (1304832.0 + (x * (128512.0 + (x * 512.0))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -353792.0;\n\t}\n\treturn -353792.0 + (x * (-9061376.0 + (x * (-21253376.0 + (x * (-8728576.0 + (x * (-518656.0 + (x * -1024.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 22368256.0;\n\t}\n\treturn 22368256.0 + (x * (175627264.0 + (x * (222398464.0 + (x * (56520704.0 + (x * (2084864.0 + (x * 2048.0))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_65_0/boost/math/special_functions/detail/polygamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright Nikhar Agrawal 2013.\n* (C) Copyright Christopher Kormanyos 2013.\n* (C) Copyright John Maddock 2014.\n* (C) Copyright Paul Bristow 2013.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport factorial from './../../../../base/special/factorial';\nimport zeta from './../../../../base/special/riemann-zeta';\nimport abs from './../../../../base/special/abs';\nimport pow from './../../../../base/special/pow';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport EPS from '@stdlib/constants/float64/eps';\nimport MAX from '@stdlib/constants/float64/max';\n\n\n// VARIABLES //\n\nvar debug = logger( 'polygamma' );\nvar MAX_SERIES_ITERATIONS = 1000000;\n\n\n// MAIN //\n\n/**\n* Evaluates the polygamma function near zero.\n*\n* ## Notes\n*\n* - If we take this [expansion][1] for `polygamma` and substitute in this [expression][2] for `polygamma(n, 1)`, we get an alternating series for polygamma when `x` is small in terms of zeta functions of integer arguments (which are easy to evaluate, at least when the integer is even).\n*\n* [1]: http://functions.wolfram.com/06.15.06.0003.02\n* [2]: http://functions.wolfram.com/06.15.03.0009.01\n*\n* @private\n* @param {PositiveInteger} n - derivative to evaluate\n* @param {number} x - input value\n* @returns {number} (n+1)'th derivative\n*/\nfunction nearzero( n, x ) {\n\tvar factorialPart;\n\tvar prefix;\n\tvar scale;\n\tvar term;\n\tvar sum;\n\tvar AX;\n\tvar k;\n\n\t// In order to avoid spurious overflow, save the `n!` term for later, and rescale at the end:\n\tscale = factorial( n );\n\n\t// \"factorialPart\" contains everything except the zeta function evaluations in each term:\n\tfactorialPart = 1;\n\n\t// \"prefix\" is what we'll be adding the accumulated sum to, it will be `n! / z^(n+1)`, but since we're scaling by `n!` it is just `1 / z^(n+1)` for now:\n\tprefix = pow( x, n+1 );\n\tif ( prefix === 0.0 ) {\n\t\treturn PINF;\n\t}\n\tprefix = 1.0 / prefix;\n\n\t// First term in the series is necessarily `< zeta(2) < 2`, so ignore the sum if it will have no effect on the result:\n\tif ( prefix > 2.0/EPS ) {\n\t\tif ( n & 1 ) {\n\t\t\treturn ( AX/prefix < scale ) ? PINF : prefix * scale;\n\t\t}\n\t\treturn ( AX/prefix < scale ) ? NINF : -prefix * scale;\n\t}\n\tsum = prefix;\n\tfor ( k = 0; ; ) {\n\t\t// Get the k'th term:\n\t\tterm = factorialPart * zeta( k+n+1 );\n\t\tsum += term;\n\n\t\t// Termination condition:\n\t\tif ( abs( term ) < abs(sum * EPS ) ) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move on `k` and `factorialPart`:\n\t\tk += 1;\n\t\tfactorialPart *= (-x * (n+k)) / k;\n\n\t\t// Last chance exit:\n\t\tif ( k > MAX_SERIES_ITERATIONS ) {\n\t\t\tdebug( 'Series did not converge, best value is %d.', sum );\n\t\t\treturn NaN;\n\t\t}\n\t}\n\t// We need to multiply by the scale, at each stage checking for overflow:\n\tif ( MAX/scale < sum ) {\n\t\treturn PINF;\n\t}\n\tsum *= scale;\n\treturn ( n & 1 ) ? sum : -sum;\n}\n\n\n// EXPORTS //\n\nexport default nearzero;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_65_0/boost/math/special_functions/detail/polygamma.hpp}. The implementation follows the original but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright Nikhar Agrawal 2013.\n* (C) Copyright Christopher Kormanyos 2013.\n* (C) Copyright John Maddock 2014.\n* (C) Copyright Paul Bristow 2013.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nvar logger = require( 'debug' );\nimport isNonNegativeInteger from './../../../../base/assert/is-nonnegative-integer';\nimport factorial from './../../../../base/special/factorial';\nimport trigamma from './../../../../base/special/trigamma';\nimport digamma from './../../../../base/special/digamma';\nimport signum from './../../../../base/special/signum';\nimport ldexp from './../../../../base/special/ldexp';\nimport floor from './../../../../base/special/floor';\nimport trunc from './../../../../base/special/trunc';\nimport zeta from './../../../../base/special/riemann-zeta';\nimport abs from './../../../../base/special/abs';\nimport min from './../../../../base/special/min';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport MAX from '@stdlib/constants/float64/max';\nimport PI from '@stdlib/constants/float64/pi';\nimport attransitionplus from './attransitionplus.js';\nimport atinfinityplus from './atinfinityplus.js';\nimport polycotpi from './polycotpi.js';\nimport nearzero from './nearzero.js';\n\n\n// VARIABLES //\n\nvar debug = logger( 'polygamma' );\nvar DIGITS_BASE10 = 19;\n\n\n// MAIN //\n\n/**\n* Evaluates the polygamma function.\n*\n* @param {NonNegativeInteger} n - order of derivative\n* @param {number} x - input value\n* @returns {number} (n+1)'th derivative\n*\n* @example\n* var v = polygamma( 3, 1.2 );\n* // returns ~3.245\n*\n* @example\n* var v = polygamma( 5, 1.2 );\n* // returns ~41.39\n*\n* @example\n* var v = polygamma( 3, -4.9 );\n* // returns ~60014.239\n*\n* @example\n* var v = polygamma( 2.5, -1.2 );\n* // returns NaN\n*\n* @example\n* var v = polygamma( -1, 5.3 );\n* // returns NaN\n*\n* @example\n* var v = polygamma( 2, -2.0 );\n* // returns NaN\n*\n* @example\n* var v = polygamma( NaN, 2.1 );\n* // returns NaN\n*\n* @example\n* var v = polygamma( 1, NaN );\n* // returns NaN\n*\n* @example\n* var v = polygamma( NaN, NaN );\n* // returns NaN\n*/\nfunction polygamma( n, x ) {\n\tvar xSmallLimit;\n\tvar result;\n\tvar z;\n\n\tif ( !isNonNegativeInteger( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( n === 0 ) {\n\t\treturn digamma( x );\n\t}\n\tif ( n === 1 ) {\n\t\treturn trigamma( x );\n\t}\n\tif ( x < 0.0 ) {\n\t\tif ( floor(x) === x ) {\n\t\t\t// Result is infinity if `x` is odd, and a pole error if `x` is even.\n\t\t\tif ( trunc( x ) & 1 ) {\n\t\t\t\treturn PINF;\n\t\t\t}\n\t\t\tdebug( 'Evaluation at negative integer: %d.', x );\n\t\t\treturn NaN;\n\t\t}\n\t\tz = 1.0 - x;\n\t\tresult = polygamma( n, z ) + ( PI * polycotpi( n, z, x ) );\n\t\treturn ( n & 1 ) ? -result : result;\n\t}\n\t// Limit for use of small-x series is chosen so that the series doesn't go too divergent in the first few terms. Ordinarily, this would mean setting the limit to `~1/n`, but we can tolerate a small amount of divergence:\n\txSmallLimit = min( 5.0/n, 0.25 );\n\tif ( x < xSmallLimit ) {\n\t\treturn nearzero( n, x );\n\t}\n\tif ( x > ( 0.4 * DIGITS_BASE10 ) + ( 4*n ) ) {\n\t\treturn atinfinityplus( n, x );\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn ( ( n & 1 ) ? 1.0 : -1.0 ) * factorial( n ) * zeta( n+1 );\n\t}\n\tif ( x === 0.5 ) {\n\t\tresult = ( ( n & 1 ) ? 1.0 : -1.0 ) * factorial( n ) * zeta( n+1 );\n\t\tif ( abs( result ) >= ldexp( MAX, -n-1 ) ) {\n\t\t\treturn ( signum( result ) === 1 ) ? PINF : NINF;\n\t\t}\n\t\tresult *= ldexp( 1.0, n+1 ) - 1.0;\n\t\treturn result;\n\t}\n\treturn attransitionplus( n, x );\n}\n\n\n// EXPORTS //\n\nexport default polygamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = ramp( 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = ramp( -3.14 );\n* // returns 0.0\n*\n* @example\n* var v = ramp( NaN );\n* // returns NaN\n*/\nfunction ramp( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > 0.0 ) {\n\t\treturn x;\n\t}\n\treturn 0.0; // handles `-0`\n}\n\n\n// EXPORTS //\n\nexport default ramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function (single-precision).\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = rampf( 3.0 );\n* // returns 3.0\n*\n* @example\n* var v = rampf( -3.0 );\n* // returns 0.0\n*\n* @example\n* var v = rampf( NaN );\n* // returns NaN\n*/\nfunction rampf( x ) {\n\tif ( isnanf( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > 0.0 ) {\n\t\treturn x;\n\t}\n\treturn 0.0; // handles `-0`\n}\n\n\n// EXPORTS //\n\nexport default rampf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log2 from './../../../../base/special/log2';\nimport MAX_EXP from '@stdlib/constants/float64/max-base2-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base2-exponent-subnormal';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\n// 2^1023:\nvar HUGE = pow( 2.0, MAX_EXP );\nvar HALF_HUGE = HUGE / 2.0;\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of two on a linear scale.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = round2( 3.141592653589793 );\n* // returns 4.0\n*\n* @example\n* var v = round2( 13.0 );\n* // returns 16.0\n*\n* @example\n* var v = round2( -0.314 );\n* // returns -0.25\n*/\nfunction round2( x ) {\n\tvar sign;\n\tvar half;\n\tvar p1;\n\tvar p2;\n\tvar y1;\n\tvar y2;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\n\t// Solve the equation `2^p = x` for `p`:\n\tp = log2( x );\n\n\t// If provided the smallest subnormal, no rounding possible:\n\tif ( p === MIN_EXP_SUBNORMAL ) {\n\t\treturn x;\n\t}\n\n\t// Find the previous and next integer powers:\n\tp1 = floor( p );\n\tp2 = ceil( p );\n\n\t// Handle overflow:\n\tif ( p1 === MAX_EXP ) {\n\t\tif ( x - HUGE >= HALF_HUGE ) {\n\t\t\treturn sign * PINF; // sign-preserving\n\t\t}\n\t\treturn sign * HUGE;\n\t}\n\n\t// Compute previous and next powers of two:\n\ty1 = pow( 2.0, p1 );\n\ty2 = pow( 2.0, p2 );\n\n\t// Find the closest power of two:\n\thalf = ( y2 - y1 ) / 2.0;\n\tif ( y1 + half > x ) {\n\t\treturn sign * y1;\n\t}\n\treturn sign * y2;\n}\n\n\n// EXPORTS //\n\nexport default round2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport log10 from './../../../../base/special/log10';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\n\n\n// VARIABLES //\n\n// 10^308:\nvar HUGE = 1.0e308;\n\n// 10^-323\nvar TINY = 1.0e-323;\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of `10` on a linear scale.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = round10( 3.141592653589793 );\n* // returns 1.0\n*\n* @example\n* var v = round10( 13.0 );\n* // returns 10.0\n*\n* @example\n* var v = round10( -0.314 );\n* // returns -0.1\n*/\nfunction round10( x ) {\n\tvar sign;\n\tvar half;\n\tvar p1;\n\tvar p2;\n\tvar y1;\n\tvar y2;\n\tvar p;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\n\t// Solve the equation `10^p = x` for `p`:\n\tp = log10( x );\n\n\t// Find the previous and next integer powers:\n\tp1 = floor( p );\n\tp2 = ceil( p );\n\n\t// Handle tiny:\n\tif ( p1 === MIN_EXP_SUBNORMAL ) {\n\t\treturn sign * TINY;\n\t}\n\n\t// Handle huge:\n\tif ( p1 === MAX_EXP ) {\n\t\treturn sign * HUGE;\n\t}\n\n\t// Compute previous and next powers of 10:\n\ty1 = pow( 10.0, p1 );\n\ty2 = pow( 10.0, p2 );\n\n\t// Find the closest power of 10:\n\thalf = ( y2 - y1 ) / 2.0;\n\tif ( y1 + half > x ) {\n\t\treturn sign * y1;\n\t}\n\treturn sign * y2;\n}\n\n\n// EXPORTS //\n\nexport default round10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Compute the reciprocal square root of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} reciprocal square root\n*\n* @example\n* var v = rsqrt( 4.0 );\n* // returns 0.5\n*\n* @example\n* var v = rsqrt( 100.0 );\n* // returns 0.1\n*\n* @example\n* var v = rsqrt( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = rsqrt( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = rsqrt( -4.0 );\n* // returns NaN\n*\n* @example\n* var v = rsqrt( NaN );\n* // returns NaN\n*/\nfunction rsqrt( x ) {\n\treturn 1.0 / sqrt( x );\n}\n\n\n// EXPORTS //\n\nexport default rsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Compute the reciprocal square root of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} reciprocal square root\n*\n* @example\n* var v = rsqrtf( 4.0 );\n* // returns 0.5\n*\n* @example\n* var v = rsqrtf( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = rsqrtf( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = rsqrtf( -4.0 );\n* // returns NaN\n*\n* @example\n* var v = rsqrtf( NaN );\n* // returns NaN\n*/\nfunction rsqrtf( x ) {\n\treturn float64ToFloat32( 1.0 / sqrt( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default rsqrtf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1984, 1987, 1989 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport isnan from './../../../../base/assert/is-nan';\nimport cos from './../../../../base/special/cos';\nimport sin from './../../../../base/special/sin';\nimport ln from './../../../../base/special/ln';\nimport HALF_PI from '@stdlib/constants/float64/half-pi';\nimport GAMMA from '@stdlib/constants/float64/eulergamma';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport polyvalFN4 from './polyval_fn4.js';\nimport polyvalFD4 from './polyval_fd4.js';\nimport polyvalFN8 from './polyval_fn8.js';\nimport polyvalFD8 from './polyval_fd8.js';\nimport polyvalGN4 from './polyval_gn4.js';\nimport polyvalGD4 from './polyval_gd4.js';\nimport polyvalGN8 from './polyval_gn8.js';\nimport polyvalGD8 from './polyval_gd8.js';\nimport polyvalSN from './polyval_sn.js';\nimport polyvalSD from './polyval_sd.js';\nimport polyvalCN from './polyval_cn.js';\nimport polyvalCD from './polyval_cd.js';\n\n\n// MAIN //\n\n/**\n* Computes the sine and cosine integrals and assigns results to a provided output array.\n*\n* ## Method\n*\n* - The integrals are approximated by rational functions.\n*\n* - For \\\\( x > 8 \\\\), auxiliary functions \\\\( f(x) \\\\) and \\\\( g(x) \\\\) are employed such that\n*\n* ```tex\n* \\operatorname{Ci}(x) = f(x) \\sin(x) - g(x) \\cos(x) \\\\\n* \\operatorname{Si}(x) = \\pi/2 - f(x) \\cos(x) - g(x) \\sin(x)\n* ```\n*\n* ## Notes\n*\n* - Absolute error on test interval \\\\( \\[0,50\\] \\\\), except relative when greater than \\\\( 1 \\\\):\n*\n* | arithmetic | function | # trials | peak | rms |\n* |:----------:|:-----------:|:--------:|:-------:|:-------:|\n* | IEEE | Si | 30000 | 4.4e-16 | 7.3e-17 |\n* | IEEE | Ci | 30000 | 6.9e-16 | 5.1e-17 |\n*\n* @private\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var v = sici( 3.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~1.849, ~0.12 ]\n*\n* @example\n* var v = sici( 0.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ 0.0, -Infinity ]\n*\n* @example\n* var v = sici( -9.0, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ ~-1.665, ~0.055 ]\n*\n* @example\n* var v = sici( NaN, [ 0.0, 0.0 ], 1, 0 );\n* // returns [ NaN, NaN ]\n*/\nfunction sici( x, out, stride, offset ) {\n\tvar sgn;\n\tvar si;\n\tvar ci;\n\tvar c;\n\tvar f;\n\tvar g;\n\tvar s;\n\tvar z;\n\n\tif ( isnan( x ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset + stride ] = NaN;\n\t\treturn out;\n\t}\n\tif ( x < 0.0 ) {\n\t\tsgn = -1;\n\t\tx = -x;\n\t} else {\n\t\tsgn = 0;\n\t}\n\tif ( x === 0.0 ) {\n\t\tout[ offset ] = 0.0;\n\t\tout[ offset + stride ] = NINF;\n\t\treturn out;\n\t}\n\tif ( x > 1.0e9 ) {\n\t\tif ( isInfinite( x ) ) {\n\t\t\tif ( sgn === -1 ) {\n\t\t\t\tsi = -HALF_PI;\n\t\t\t\tci = NaN;\n\t\t\t} else {\n\t\t\t\tsi = HALF_PI;\n\t\t\t\tci = 0.0;\n\t\t\t}\n\t\t\tout[ offset ] = si;\n\t\t\tout[ offset + stride ] = ci;\n\t\t\treturn out;\n\t\t}\n\t\tsi = HALF_PI - ( cos( x ) / x );\n\t\tci = sin( x ) / x;\n\t}\n\tif ( x > 4.0 ) {\n\t\ts = sin( x );\n\t\tc = cos( x );\n\t\tz = 1.0 / ( x*x );\n\t\tif ( x < 8.0 ) {\n\t\t\tf = polyvalFN4( z ) / ( x * polyvalFD4( z ) );\n\t\t\tg = z * polyvalGN4( z ) / polyvalGD4( z );\n\t\t} else {\n\t\t\tf = polyvalFN8( z ) / ( x * polyvalFD8( z ) );\n\t\t\tg = z * polyvalGN8( z ) / polyvalGD8( z );\n\t\t}\n\t\tsi = HALF_PI - ( f*c ) - ( g*s );\n\t\tif ( sgn ) {\n\t\t\tsi = -si;\n\t\t}\n\t\tci = ( f*s ) - ( g*c );\n\t\tout[ offset ] = si;\n\t\tout[ offset + stride ] = ci;\n\t\treturn out;\n\t}\n\tz = x * x;\n\ts = x * polyvalSN( z ) / polyvalSD( z );\n\tc = z * polyvalCN( z ) / polyvalCD( z );\n\tif ( sgn ) {\n\t\ts = -s;\n\t}\n\tsi = s;\n\tci = GAMMA + ln( x ) + c; // real part if x < 0\n\tout[ offset ] = si;\n\tout[ offset + stride ] = ci;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default sici;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 5.489002234213736e-7;\n\t}\n\treturn 5.489002234213736e-7 + (x * (0.00010893658065032867 + (x * (0.006810201324725182 + (x * (0.16700661183132304 + (x * (1.6208328770153833 + (x * (5.4593771716181285 + (x * 4.236128628922166))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 5.489002527562557e-7;\n\t}\n\treturn 5.489002527562557e-7 + (x * (0.00011003435715391573 + (x * (0.007017106683227897 + (x * (0.1787920529631499 + (x * (1.867922579501842 + (x * (7.308288225055645 + (x * (8.16496634205391 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 7.825790407440903e-9;\n\t}\n\treturn 7.825790407440903e-9 + (x * (0.0000019796387414096365 + (x * (0.00016199979459893403 + (x * (0.005388686814621773 + (x * (0.07485277376284691 + (x * (0.3971802963923375 + (x * (0.6113791099522193 + (x * 0.08710016989731142))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 7.825792189335346e-9;\n\t}\n\treturn 7.825792189335346e-9 + (x * (0.0000020265918208634397 + (x * (0.0001732210814741771 + (x * (0.006223963454417684 + (x * (0.09887717612776888 + (x * (0.666296701268988 + (x * (1.6440220241335535 + (x * 1.0))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 9.70507110881952e-14;\n\t}\n\treturn 9.70507110881952e-14 + (x * (9.41779576128513e-11 + (x * (3.200927900910049e-8 + (x * (0.0000048621543082645475 + (x * (0.00034955644244785906 + (x * (0.01160642294081244 + (x * (0.16030015822231947 + (x * (0.7137152741001467 + (x * 0.4558808734704653))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 9.70507110881952e-14;\n\t}\n\treturn 9.70507110881952e-14 + (x * (9.437205903502767e-11 + (x * (3.21956939101046e-8 + (x * (0.000004924350643178815 + (x * (0.00035869648188185157 + (x * (0.012225359477197129 + (x * (0.17868554533207454 + (x * (0.9174636118736841 + (x * 1.0))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 3.1404009894636335e-15;\n\t}\n\treturn 3.1404009894636335e-15 + (x * (3.859459254302766e-12 + (x * (1.7040445278204452e-9 + (x * (3.471311670841167e-7 + (x * (0.000034894116550227946 + (x * (0.001717182390523479 + (x * (0.03848787676499743 + (x * (0.33041097930563207 + (x * 0.6973599534432762))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 3.1404009894636335e-15;\n\t}\n\treturn 3.1404009894636335e-15 + (x * (3.878301660239547e-12 + (x * (1.7269374896631615e-9 + (x * (3.5704322344374083e-7 + (x * (0.00003684755044425611 + (x * (0.0019028442667439953 + (x * (0.04679131942596258 + (x * (0.48785225869530496 + (x * (1.6854889881101165 + (x * 1.0))))))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (-0.04134703162294066 + (x * (0.0009769454381704354 + (x * (-0.000009757593038436328 + (x * (4.625917144270128e-8 + (x * -8.391678279103039e-11))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (0.01420852393261499 + (x * (0.00009964121220438756 + (x * (4.418278428012189e-7 + (x * (1.279978911799433e-9 + (x * 2.0326926619595193e-12))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn -1.0;\n\t}\n\treturn -1.0 + (x * (0.028915965260755523 + (x * (-0.0004740072068734079 + (x * (0.000003593250514199931 + (x * (-1.3524950491579076e-8 + (x * 2.0252400238910228e-11))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 4.0;\n\t}\n\treturn 4.0 + (x * (0.051002805623644606 + (x * (0.00031744202477503275 + (x * (0.0000012321035568588342 + (x * (3.067809975818878e-9 + (x * 4.077460400618806e-12))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport fcn from './assign.js';\n\n\n// MAIN //\n\n/**\n* Computes the sine and cosine integrals.\n*\n* @param {number} x - input value\n* @returns {Array} output array\n*\n* @example\n* var v = sici( 3.0 );\n* // returns [ ~1.849, ~0.12 ]\n*\n* @example\n* var v = sici( 0.0 );\n* // returns [ 0.0, -Infinity ]\n*\n* @example\n* var v = sici( -9.0 );\n* // returns [ ~-1.665, ~0.055 ]\n*\n* @example\n* var v = sici( NaN );\n* // returns [ NaN, NaN ]\n*/\nfunction sici( x ) {\n\treturn fcn( x, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default sici;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sinpi from './../../../../base/special/sinpi';\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// MAIN //\n\n/**\n* Computes the normalized cardinal sine of a number.\n*\n* ## Method\n*\n* For \\\\( x \\neq 0 \\\\), the normalized cardinal sine is calculated as\n*\n* ```tex\n* \\operatorname{sinc}(x) = \\frac{\\operatorname{sin}(\\pi x)}{\\pi x}.\n* ```\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{sinc}(0) &= 1 & \\\\\n* \\operatorname{sinc}(\\infty) &= 0 & \\\\\n* \\operatorname{sinc}(-\\infty) &= 0 & \\\\\n* \\operatorname{sinc}(\\mathrm{NaN}) &= \\mathrm{NaN}\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @returns {number} cardinal sine\n*\n* @example\n* var v = sinc( 0.5 );\n* // returns ~0.637\n*\n* @example\n* var v = sinc( -1.2 );\n* // returns ~-0.156\n*\n* @example\n* var v = sinc( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = sinc( NaN );\n* // returns NaN\n*/\nfunction sinc( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) ) {\n\t\treturn 0.0;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn sinpi( x ) / ( PI*x );\n}\n\n\n// EXPORTS //\n\nexport default sinc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport abs from './../../../../base/special/abs';\nimport { assign as sincos } from './../../../../base/special/sincos';\nimport floor from './../../../../base/special/floor';\nimport PI from '@stdlib/constants/float64/pi';\nimport copysign from './../../../../base/special/copysign';\n\n\n// MAIN //\n\n/**\n* Simultaneously computes the sine and cosine of a number times π.\n*\n* @private\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} two-element array containing sin(πx) and cos(πx)\n*\n* @example\n* var v = sincospi( 0.0, [0.0, 0.0], 1, 0 );\n* // returns [ 0.0, 1.0 ]\n*\n* @example\n* var v = sincospi( 0.5, [0.0, 0.0], 1, 0 );\n* // returns [ 1.0, 0.0 ]\n*\n* @example\n* var v = sincospi( 0.1, [0.0, 0.0], 1, 0 );\n* // returns [ ~0.309, ~0.951 ]\n*\n* @example\n* var v = sincospi( NaN, [0.0, 0.0], 1, 0 );\n* // returns [ NaN, NaN ]\n*/\nfunction sincospi( x, out, stride, offset ) {\n\tvar tmp;\n\tvar ix;\n\tvar ar;\n\tvar r;\n\n\tif ( isnan( x ) || isInfinite( x ) ) {\n\t\tout[ offset ] = NaN;\n\t\tout[ offset+stride ] = NaN;\n\t\treturn out;\n\t}\n\tr = x % 2.0;\n\tar = abs( r );\n\tif ( ar === 0.0 || ar === 1.0 ) {\n\t\tix = floor( ar );\n\t\tout[ offset ] = copysign( 0.0, r );\n\t\tout[ offset+stride ] = ( ix%2 === 1 ) ? -1.0 : 1.0;\n\t\treturn out;\n\t}\n\tif ( ar < 0.25 ) {\n\t\treturn sincos( PI*r, out, stride, offset );\n\t}\n\tif ( ar < 0.75 ) {\n\t\tar = 0.5 - ar;\n\t\tsincos( PI*ar, out, stride, offset );\n\t\ttmp = out[ offset ];\n\t\tout[ offset ] = copysign( out[ offset+stride ], r );\n\t\tout[ offset+stride ] = tmp;\n\t\treturn out;\n\t}\n\tif ( ar < 1.25 ) {\n\t\tr = copysign( 1.0, r ) - r;\n\t\tsincos( PI*r, out, stride, offset );\n\t\tout[ offset+stride ] *= -1;\n\t\treturn out;\n\t}\n\tif ( ar < 1.75 ) {\n\t\tar -= 1.5;\n\t\tsincos( PI*ar, out, stride, offset );\n\t\ttmp = out[ offset ];\n\t\tout[ offset ] = -copysign( out[ offset+stride ], r );\n\t\tout[ offset+stride ] = tmp;\n\t\treturn out;\n\t}\n\tr -= copysign( 2.0, r );\n\treturn sincos( PI*r, out, stride, offset );\n}\n\n\n// EXPORTS //\n\nexport default sincospi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Simultaneously computes the sine and cosine of a number times π.\n*\n* @param {number} x - input value\n* @returns {Array} two-element array containing sin(πx) and cos(πx)\n*\n* @example\n* var v = sincospi( 0.0 );\n* // returns [ 0.0, 1.0 ]\n*\n* @example\n* var v = sincospi( 0.5 );\n* // returns [ 1.0, 0.0 ]\n*\n* @example\n* var v = sincospi( 0.1 );\n* // returns [ ~0.309, ~0.951 ]\n*\n* @example\n* var v = sincospi( NaN );\n* // returns [ NaN, NaN ]\n*/\nfunction sincospi( x ) {\n\treturn assign( x, [ 0.0, 0.0 ], 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default sincospi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the sine and cosine integrals.\n*\n* @module @stdlib/math/base/special/sici\n*\n* @example\n* import sici from '@stdlib/math/base/special/sici';\n*\n* var v = sici( 3.0 );\n* // returns [ ~1.849, ~0.12 ]\n*\n* v = sici( 0.0 );\n* // returns [ 0.0, -Infinity ]\n*\n* v = sici( -9.0 );\n* // returns [ ~-1.665, ~0.055 ]\n*\n* v = sici( NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import sici from '@stdlib/math/base/special/sici';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = sici.assign( 3.0, out, 1, 0 );\n* // returns [ ~1.849, ~0.12 ]\n*\n* var bool = ( v === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Simultaneously compute the sine and cosine of a number times π.\n*\n* @module @stdlib/math/base/special/sincospi\n*\n* @example\n* import sincospi from '@stdlib/math/base/special/sincospi';\n*\n* var v = sincospi( 0.0 );\n* // returns [ 0.0, 1.0 ]\n*\n* v = sincospi( 0.5 );\n* // returns [ 1.0, 0.0 ]\n*\n* v = sincospi( 0.1 );\n* // returns [ ~0.309, ~0.951 ]\n*\n* v = sincospi( NaN );\n* // returns [ NaN, NaN ]\n*\n* @example\n* import sincospi from '@stdlib/math/base/special/sincospi';\n*\n* var out = new Float64Array( 2 );\n*\n* var v = sincospi.assign( 0.0, out, 1, 0 );\n* // returns [ 0.0, 1.0 ]\n*\n* var bool = ( v === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* Copyright 1985, 1987, 1989, 2000 by Stephen L. Moshier\n*\n* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee.\n*\n* Stephen L. Moshier\n* moshier@na-net.ornl.gov\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport ln from './../../../../base/special/ln';\nimport PI_SQUARED from '@stdlib/constants/float64/pi-squared';\nimport polyvalA from './polyval_a.js';\nimport polyvalB from './polyval_b.js';\n\n\n// VARIABLES //\n\nvar PI2O6 = PI_SQUARED / 6.0;\n\n\n// MAIN //\n\n/**\n* Evaluates Spence's function, which is also known as the dilogarithm.\n*\n* ## Method\n*\n* - A rational approximation gives the integral in the interval (0.5, 1.5).\n* - Transformation formulas for \\\\( \\tfrac{1}{x} \\\\) and \\\\( 1 - x \\\\) are employed outside the basic expansion range.\n*\n* ## Notes\n*\n* - Relative error:\n*\n* | arithmetic | domain | # trials | peak | rms |\n* |:----------:|:-----------:|:--------:|:-------:|:-------:|\n* | IEEE | 0,4 | 30000 | 3.9e-15 | 5.4e-16 |\n*\n* @param {NonNegativeNumber} x - input value\n* @returns {number} function value\n*\n* @example\n* var v = spence( 3.0 );\n* // returns ~-1.437\n*\n* @example\n* var v = spence( 0.0 );\n* // returns ~1.645\n*\n* @example\n* var v = spence( -9.0 );\n* // returns NaN\n*\n* @example\n* var v = spence( NaN );\n* // returns NaN\n*/\nfunction spence( x ) {\n\tvar flg;\n\tvar w;\n\tvar y;\n\tvar z;\n\n\tif ( isnan( x ) || x < 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 1.0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( x === 0.0 ) {\n\t\treturn PI2O6;\n\t}\n\tflg = 0;\n\tif ( x > 2.0 ) {\n\t\tx = 1.0 / x;\n\t\tflg |= 2;\n\t}\n\tif ( x > 1.5 ) {\n\t\tw = (1.0 / x) - 1.0;\n\t\tflg |= 2;\n\t} else if ( x < 0.5 ) {\n\t\tw = -x;\n\t\tflg |= 1;\n\t} else {\n\t\tw = x - 1.0;\n\t}\n\ty = -w * polyvalA( w ) / polyvalB( w );\n\tif ( flg & 1 ) {\n\t\ty = PI2O6 - ( ln( x ) * ln( 1.0-x ) ) - y;\n\t}\n\tif ( flg & 2 ) {\n\t\tz = ln( x );\n\t\ty = -( 0.5 * z * z ) - y;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default spence;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (3.297713409852251 + (x * (4.256971560081218 + (x * (2.7114985119655346 + (x * (0.8796913117545303 + (x * (0.13384763957830903 + (x * (0.007315890452380947 + (x * 0.000046512858607399003))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* This is a generated file. Do not edit directly. */\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates a polynomial.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @private\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*/\nfunction evalpoly( x ) {\n\tif ( x === 0.0 ) {\n\t\treturn 1.0;\n\t}\n\treturn 1.0 + (x * (3.547713409852251 + (x * (5.03278880143317 + (x * (3.6380053334513707 + (x * (1.4117259775183106 + (x * (0.2829748606025681 + (x * (0.02540437639325444 + (x * 0.0006909904889125533))))))))))))); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default evalpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link https://github.com/boostorg/math/blob/fa1896fbc4c6fadc167307342ceb20bf2b6c0688/include/boost/math/special_functions/sqrt1pm1.hpp}. This implementation follows the original, but has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport expm1 from './../../../../base/special/expm1';\nimport log1p from './../../../../base/special/log1p';\nimport sqrt from './../../../../base/special/sqrt';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the value of `sqrt(1+x)-1`.\n*\n* @param {number} x - input value\n* @returns {number} square root of `1+x` minus one\n*\n* @example\n* var v = sqrt1pm1( 3.0 );\n* // returns 1.0\n*\n* @example\n* var v = sqrt1pm1( 0.5 );\n* // returns ~0.225\n*\n* @example\n* var v = sqrt1pm1( 0.02 );\n* // returns ~0.01\n*\n* @example\n* var v = sqrt1pm1( -0.5 );\n* // returns ~-0.293\n*\n* @example\n* var v = sqrt1pm1( -1.1 );\n* // returns NaN\n*\n* @example\n* var v = sqrt1pm1( NaN );\n* // returns NaN\n*/\nfunction sqrt1pm1( x ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( abs( x ) > 0.75 ) {\n\t\treturn sqrt( 1.0+x ) - 1.0;\n\t}\n\treturn expm1( log1p( x ) / 2.0 );\n}\n\n\n// EXPORTS //\n\nexport default sqrt1pm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport log2 from './../../../../base/special/log2';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of two toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = trunc2( 3.141592653589793 );\n* // returns 2.0\n*\n* @example\n* var v = trunc2( 13.0 );\n* // returns 8.0\n*\n* @example\n* var v = trunc2( -0.314 );\n* // returns -0.25\n*/\nfunction trunc2( x ) {\n\tvar sign;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\treturn sign * pow( 2.0, floor( log2( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default trunc2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport log10 from './../../../../base/special/log10';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest power of `10` toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = trunc10( 3.141592653589793 );\n* // returns 1.0\n*\n* @example\n* var v = trunc10( 13.0 );\n* // returns 10.0\n*\n* @example\n* var v = trunc10( -0.314 );\n* // returns -0.1\n*/\nfunction trunc10( x ) {\n\tvar sign;\n\tif (\n\t\tisnan( x ) ||\n\t\tisInfinite( x ) ||\n\t\tx === 0.0\n\t) {\n\t\treturn x;\n\t}\n\tif ( x < 0 ) {\n\t\tx = -x;\n\t\tsign = -1.0;\n\t} else {\n\t\tsign = 1.0;\n\t}\n\treturn sign * pow( 10.0, floor( log10( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default trunc10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport trunc from './../../../../base/special/trunc';\nimport MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport MAX_EXP from '@stdlib/constants/float64/max-base10-exponent';\nimport MIN_EXP from '@stdlib/constants/float64/min-base10-exponent';\nimport MIN_EXP_SUBNORMAL from '@stdlib/constants/float64/min-base10-exponent-subnormal';\n\n\n// VARIABLES //\n\nvar MAX_INT = MAX_SAFE_INTEGER + 1;\nvar HUGE = 1.0e+308;\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(10^n\\\\) toward zero.\n*\n* ## Method\n*\n* 1. If \\\\(|x| <= 2^{53}\\\\) and \\\\(|n| <= 308\\\\), we can use the formula\n*\n* ```tex\n* \\operatorname{truncn}(x,n) = \\frac{\\operatorname{trunc}(x \\cdot 10^{-n})}{10^{-n}}\n* ```\n*\n* which shifts the decimal to the nearest multiple of \\\\(10^n\\\\), performs a standard \\\\(\\mathrm{trunc}\\\\) operation, and then shifts the decimal to its original position.\n*\n* \n*\n* If \\\\(x \\cdot 10^{-n}\\\\) overflows, \\\\(x\\\\) lacks a sufficient number of decimal digits to have any effect when rounding. Accordingly, the rounded value is \\\\(x\\\\).\n*\n* \n*\n* \n*\n* Note that rescaling \\\\(x\\\\) can result in unexpected behavior due to the fact that most decimal fractions cannot be exactly represented as floating-point numbers. And further, rescaling can lead to slightly different fractional values, which, in turn, affects the result of \\\\(\\mathrm{trunc}\\\\).\n*\n* \n*\n* 2. If \\\\(n > 308\\\\), we recognize that the maximum absolute double-precision floating-point number is \\\\(\\approx 1.8\\mbox{e}308\\\\) and, thus, the result of rounding any possible finite number \\\\(x\\\\) to the nearest \\\\(10^n\\\\) is \\\\(0\\\\). To ensure consistent behavior with \\\\(\\operatorname{trunc}(x)\\\\), the sign of \\\\(x\\\\) is preserved.\n*\n* 3. If \\\\(n < -324\\\\), \\\\(n\\\\) exceeds the maximum number of possible decimal places (such as with subnormal numbers), and, thus, the rounded value is \\\\(x\\\\).\n*\n* 4. If \\\\(x > 2^{53}\\\\), \\\\(x\\\\) is **always** an integer (i.e., \\\\(x\\\\) has no decimal digits). If \\\\(n <= 0\\\\), the rounded value is \\\\(x\\\\).\n*\n* 5. If \\\\(n < -308\\\\), we let \\\\(m = n + 308\\\\) and modify the above formula to avoid overflow.\n*\n* ```tex\n* \\operatorname{truncn}(x,n) = \\frac{\\biggl(\\frac{\\operatorname{trunc}( (x \\cdot 10^{308}) 10^{-m})}{10^{308}}\\biggr)}{10^{-m}}\n* ```\n*\n* If overflow occurs, the rounded value is \\\\(x\\\\).\n*\n* ## Special Cases\n*\n* ```tex\n* \\begin{align*}\n* \\operatorname{truncn}(\\mathrm{NaN}, n) &= \\mathrm{NaN} \\\\\n* \\operatorname{truncn}(x, \\mathrm{NaN}) &= \\mathrm{NaN} \\\\\n* \\operatorname{truncn}(x, \\pm\\infty) &= \\mathrm{NaN} \\\\\n* \\operatorname{truncn}(\\pm\\infty, n) &= \\pm\\infty \\\\\n* \\operatorname{truncn}(\\pm 0, n) &= \\pm 0\n* \\end{align*}\n* ```\n*\n* @param {number} x - input value\n* @param {integer} n - integer power of `10`\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 4 decimal places:\n* var v = truncn( 3.141592653589793, -4 );\n* // returns 3.1415\n*\n* @example\n* // If n = 0, `truncn` behaves like `trunc`:\n* var v = truncn( 3.141592653589793, 0 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest thousand:\n* var v = truncn( 12368.0, 3 );\n* // returns 12000.0\n*/\nfunction truncn( x, n ) {\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisInfinite( n )\n\t) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\t// Handle infinities...\n\t\tisInfinite( x ) ||\n\n\t\t// Handle +-0...\n\t\tx === 0.0 ||\n\n\t\t// If `n` exceeds the maximum number of feasible decimal places (such as with subnormal numbers), nothing to truncate...\n\t\tn < MIN_EXP_SUBNORMAL ||\n\n\t\t// If `|x|` is large enough, no decimals to truncate...\n\t\t( abs( x ) > MAX_INT && n <= 0 )\n\t) {\n\t\treturn x;\n\t}\n\t// The maximum absolute double is ~1.8e308. Accordingly, any possible positive finite `x` rounded to the nearest >=10^309 is zero.\n\tif ( n > MAX_EXP ) {\n\t\treturn 0.0 * x; // preserve the sign (same behavior as trunc)\n\t}\n\t// If we overflow, return `x`, as the number of digits to the right of the decimal is too small (i.e., `x` is too large / lacks sufficient fractional precision) for there to be any effect when rounding...\n\tif ( n < MIN_EXP ) {\n\t\ts = pow( 10.0, -(n + MAX_EXP) );\n\t\ty = (x*HUGE) * s; // order of operation matters!\n\t\tif ( isInfinite( y ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn ( trunc(y)/HUGE ) / s;\n\t}\n\ts = pow( 10.0, -n );\n\ty = x * s;\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn trunc( y ) / s;\n}\n\n\n// EXPORTS //\n\nexport default truncn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floorf from './../../../../base/special/floorf';\nimport ceilf from './../../../../base/special/ceilf';\n\n\n// MAIN //\n\n/**\n* Rounds a single-precision floating-point number toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = truncf( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = truncf( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = truncf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = truncf( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = truncf( NaN );\n* // returns NaN\n*\n* @example\n* var v = truncf( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = truncf( -Infinity );\n* // returns -Infinity\n*/\nfunction truncf( x ) {\n\tif ( x < 0.0 ) {\n\t\treturn ceilf( x );\n\t}\n\treturn floorf( x );\n}\n\n\n// EXPORTS //\n\nexport default truncf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the versed cosine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} versed cosine\n*\n* @example\n* var v = vercos( 0.0 );\n* // returns 2.0\n*\n* @example\n* var v = vercos( 3.141592653589793/2.0 );\n* // returns 1.0\n*\n* @example\n* var v = vercos( -3.141592653589793/6.0 );\n* // returns ~1.8660\n*\n* @example\n* var v = vercos( NaN );\n* // returns NaN\n*/\nfunction vercos( x ) {\n\treturn 1.0 + cos( x );\n}\n\n\n// EXPORTS //\n\nexport default vercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the versed sine.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} versed sine\n*\n* @example\n* var v = versin( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = versin( 3.141592653589793/2.0 );\n* // returns ~1.0\n*\n* @example\n* var v = versin( -3.141592653589793/6.0 );\n* // returns ~0.13397\n*\n* @example\n* var v = versin( NaN );\n* // returns NaN\n*/\nfunction versin( x ) {\n\treturn 1.0 - cos( x );\n}\n\n\n// EXPORTS //\n\nexport default versin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace special\n*/\nvar special = {};\n\n/**\n* @name abs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/abs}\n*/\nimport abs from './../../../base/special/abs';\nsetReadOnly( special, 'abs', abs );\n\n/**\n* @name abs2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/abs2}\n*/\nimport abs2 from './../../../base/special/abs2';\nsetReadOnly( special, 'abs2', abs2 );\n\n/**\n* @name abs2f\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/abs2f}\n*/\nimport abs2f from './../../../base/special/abs2f';\nsetReadOnly( special, 'abs2f', abs2f );\n\n/**\n* @name absf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/absf}\n*/\nimport absf from './../../../base/special/absf';\nsetReadOnly( special, 'absf', absf );\n\n/**\n* @name acos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acos}\n*/\nimport acos from './../../../base/special/acos';\nsetReadOnly( special, 'acos', acos );\n\n/**\n* @name acosd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acosd}\n*/\nimport acosd from './../../../base/special/acosd';\nsetReadOnly( special, 'acosd', acosd );\n\n/**\n* @name acosf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acosf}\n*/\nimport acosf from './../../../base/special/acosf';\nsetReadOnly( special, 'acosf', acosf );\n\n/**\n* @name acosh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acosh}\n*/\nimport acosh from './../../../base/special/acosh';\nsetReadOnly( special, 'acosh', acosh );\n\n/**\n* @name acot\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acot}\n*/\nimport acot from './../../../base/special/acot';\nsetReadOnly( special, 'acot', acot );\n\n/**\n* @name acotd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acotd}\n*/\nimport acotd from './../../../base/special/acotd';\nsetReadOnly( special, 'acotd', acotd );\n\n/**\n* @name acotf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acotf}\n*/\nimport acotf from './../../../base/special/acotf';\nsetReadOnly( special, 'acotf', acotf );\n\n/**\n* @name acoth\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acoth}\n*/\nimport acoth from './../../../base/special/acoth';\nsetReadOnly( special, 'acoth', acoth );\n\n/**\n* @name acovercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acovercos}\n*/\nimport acovercos from './../../../base/special/acovercos';\nsetReadOnly( special, 'acovercos', acovercos );\n\n/**\n* @name acoversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acoversin}\n*/\nimport acoversin from './../../../base/special/acoversin';\nsetReadOnly( special, 'acoversin', acoversin );\n\n/**\n* @name acsc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acsc}\n*/\nimport acsc from './../../../base/special/acsc';\nsetReadOnly( special, 'acsc', acsc );\n\n/**\n* @name acscd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acscd}\n*/\nimport acscd from './../../../base/special/acscd';\nsetReadOnly( special, 'acscd', acscd );\n\n/**\n* @name acscdf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acscdf}\n*/\nimport acscdf from './../../../base/special/acscdf';\nsetReadOnly( special, 'acscdf', acscdf );\n\n/**\n* @name acscf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acscf}\n*/\nimport acscf from './../../../base/special/acscf';\nsetReadOnly( special, 'acscf', acscf );\n\n/**\n* @name acsch\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/acsch}\n*/\nimport acsch from './../../../base/special/acsch';\nsetReadOnly( special, 'acsch', acsch );\n\n/**\n* @name ahavercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ahavercos}\n*/\nimport ahavercos from './../../../base/special/ahavercos';\nsetReadOnly( special, 'ahavercos', ahavercos );\n\n/**\n* @name ahaversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ahaversin}\n*/\nimport ahaversin from './../../../base/special/ahaversin';\nsetReadOnly( special, 'ahaversin', ahaversin );\n\n/**\n* @name asec\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asec}\n*/\nimport asec from './../../../base/special/asec';\nsetReadOnly( special, 'asec', asec );\n\n/**\n* @name asecd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asecd}\n*/\nimport asecd from './../../../base/special/asecd';\nsetReadOnly( special, 'asecd', asecd );\n\n/**\n* @name asecdf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asecdf}\n*/\nimport asecdf from './../../../base/special/asecdf';\nsetReadOnly( special, 'asecdf', asecdf );\n\n/**\n* @name asecf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asecf}\n*/\nimport asecf from './../../../base/special/asecf';\nsetReadOnly( special, 'asecf', asecf );\n\n/**\n* @name asech\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asech}\n*/\nimport asech from './../../../base/special/asech';\nsetReadOnly( special, 'asech', asech );\n\n/**\n* @name asin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asin}\n*/\nimport asin from './../../../base/special/asin';\nsetReadOnly( special, 'asin', asin );\n\n/**\n* @name asind\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asind}\n*/\nimport asind from './../../../base/special/asind';\nsetReadOnly( special, 'asind', asind );\n\n/**\n* @name asindf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asindf}\n*/\nimport asindf from './../../../base/special/asindf';\nsetReadOnly( special, 'asindf', asindf );\n\n/**\n* @name asinf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asinf}\n*/\nimport asinf from './../../../base/special/asinf';\nsetReadOnly( special, 'asinf', asinf );\n\n/**\n* @name asinh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/asinh}\n*/\nimport asinh from './../../../base/special/asinh';\nsetReadOnly( special, 'asinh', asinh );\n\n/**\n* @name atan\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/atan}\n*/\nimport atan from './../../../base/special/atan';\nsetReadOnly( special, 'atan', atan );\n\n/**\n* @name atan2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/atan2}\n*/\nimport atan2 from './../../../base/special/atan2';\nsetReadOnly( special, 'atan2', atan2 );\n\n/**\n* @name atand\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/atand}\n*/\nimport atand from './../../../base/special/atand';\nsetReadOnly( special, 'atand', atand );\n\n/**\n* @name atanf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/atanf}\n*/\nimport atanf from './../../../base/special/atanf';\nsetReadOnly( special, 'atanf', atanf );\n\n/**\n* @name atanh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/atanh}\n*/\nimport atanh from './../../../base/special/atanh';\nsetReadOnly( special, 'atanh', atanh );\n\n/**\n* @name avercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/avercos}\n*/\nimport avercos from './../../../base/special/avercos';\nsetReadOnly( special, 'avercos', avercos );\n\n/**\n* @name aversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/aversin}\n*/\nimport aversin from './../../../base/special/aversin';\nsetReadOnly( special, 'aversin', aversin );\n\n/**\n* @name bernoulli\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/bernoulli}\n*/\nimport bernoulli from './../../../base/special/bernoulli';\nsetReadOnly( special, 'bernoulli', bernoulli );\n\n/**\n* @name besselj0\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/besselj0}\n*/\nimport besselj0 from './../../../base/special/besselj0';\nsetReadOnly( special, 'besselj0', besselj0 );\n\n/**\n* @name besselj1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/besselj1}\n*/\nimport besselj1 from './../../../base/special/besselj1';\nsetReadOnly( special, 'besselj1', besselj1 );\n\n/**\n* @name bessely0\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/bessely0}\n*/\nimport bessely0 from './../../../base/special/bessely0';\nsetReadOnly( special, 'bessely0', bessely0 );\n\n/**\n* @name bessely1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/bessely1}\n*/\nimport bessely1 from './../../../base/special/bessely1';\nsetReadOnly( special, 'bessely1', bessely1 );\n\n/**\n* @name beta\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/beta}\n*/\nimport beta from './../../../base/special/beta';\nsetReadOnly( special, 'beta', beta );\n\n/**\n* @name betainc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/betainc}\n*/\nimport betainc from './../../../base/special/betainc';\nsetReadOnly( special, 'betainc', betainc );\n\n/**\n* @name betaincinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/betaincinv}\n*/\nimport betaincinv from './../../../base/special/betaincinv';\nsetReadOnly( special, 'betaincinv', betaincinv );\n\n/**\n* @name betaln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/betaln}\n*/\nimport betaln from './../../../base/special/betaln';\nsetReadOnly( special, 'betaln', betaln );\n\n/**\n* @name binet\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/binet}\n*/\nimport binet from './../../../base/special/binet';\nsetReadOnly( special, 'binet', binet );\n\n/**\n* @name binomcoef\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/binomcoef}\n*/\nimport binomcoef from './../../../base/special/binomcoef';\nsetReadOnly( special, 'binomcoef', binomcoef );\n\n/**\n* @name binomcoefln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/binomcoefln}\n*/\nimport binomcoefln from './../../../base/special/binomcoefln';\nsetReadOnly( special, 'binomcoefln', binomcoefln );\n\n/**\n* @name boxcox\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/boxcox}\n*/\nimport boxcox from './../../../base/special/boxcox';\nsetReadOnly( special, 'boxcox', boxcox );\n\n/**\n* @name boxcox1p\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/boxcox1p}\n*/\nimport boxcox1p from './../../../base/special/boxcox1p';\nsetReadOnly( special, 'boxcox1p', boxcox1p );\n\n/**\n* @name boxcox1pinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/boxcox1pinv}\n*/\nimport boxcox1pinv from './../../../base/special/boxcox1pinv';\nsetReadOnly( special, 'boxcox1pinv', boxcox1pinv );\n\n/**\n* @name boxcoxinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/boxcoxinv}\n*/\nimport boxcoxinv from './../../../base/special/boxcoxinv';\nsetReadOnly( special, 'boxcoxinv', boxcoxinv );\n\n/**\n* @name cabs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cabs}\n*/\nimport cabs from './../../../base/special/cabs';\nsetReadOnly( special, 'cabs', cabs );\n\n/**\n* @name cabs2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cabs2}\n*/\nimport cabs2 from './../../../base/special/cabs2';\nsetReadOnly( special, 'cabs2', cabs2 );\n\n/**\n* @name cabs2f\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cabs2f}\n*/\nimport cabs2f from './../../../base/special/cabs2f';\nsetReadOnly( special, 'cabs2f', cabs2f );\n\n/**\n* @name cabsf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cabsf}\n*/\nimport cabsf from './../../../base/special/cabsf';\nsetReadOnly( special, 'cabsf', cabsf );\n\n/**\n* @name cbrt\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cbrt}\n*/\nimport cbrt from './../../../base/special/cbrt';\nsetReadOnly( special, 'cbrt', cbrt );\n\n/**\n* @name cbrtf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cbrtf}\n*/\nimport cbrtf from './../../../base/special/cbrtf';\nsetReadOnly( special, 'cbrtf', cbrtf );\n\n/**\n* @name cceil\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cceil}\n*/\nimport cceil from './../../../base/special/cceil';\nsetReadOnly( special, 'cceil', cceil );\n\n/**\n* @name cceilf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cceilf}\n*/\nimport cceilf from './../../../base/special/cceilf';\nsetReadOnly( special, 'cceilf', cceilf );\n\n/**\n* @name cceiln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cceiln}\n*/\nimport cceiln from './../../../base/special/cceiln';\nsetReadOnly( special, 'cceiln', cceiln );\n\n/**\n* @name ccis\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ccis}\n*/\nimport ccis from './../../../base/special/ccis';\nsetReadOnly( special, 'ccis', ccis );\n\n/**\n* @name ceil\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceil}\n*/\nimport ceil from './../../../base/special/ceil';\nsetReadOnly( special, 'ceil', ceil );\n\n/**\n* @name ceil2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceil2}\n*/\nimport ceil2 from './../../../base/special/ceil2';\nsetReadOnly( special, 'ceil2', ceil2 );\n\n/**\n* @name ceil10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceil10}\n*/\nimport ceil10 from './../../../base/special/ceil10';\nsetReadOnly( special, 'ceil10', ceil10 );\n\n/**\n* @name ceilb\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceilb}\n*/\nimport ceilb from './../../../base/special/ceilb';\nsetReadOnly( special, 'ceilb', ceilb );\n\n/**\n* @name ceilf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceilf}\n*/\nimport ceilf from './../../../base/special/ceilf';\nsetReadOnly( special, 'ceilf', ceilf );\n\n/**\n* @name ceiln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceiln}\n*/\nimport ceiln from './../../../base/special/ceiln';\nsetReadOnly( special, 'ceiln', ceiln );\n\n/**\n* @name ceilsd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ceilsd}\n*/\nimport ceilsd from './../../../base/special/ceilsd';\nsetReadOnly( special, 'ceilsd', ceilsd );\n\n/**\n* @name cexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cexp}\n*/\nimport cexp from './../../../base/special/cexp';\nsetReadOnly( special, 'cexp', cexp );\n\n/**\n* @name cflipsign\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cflipsign}\n*/\nimport cflipsign from './../../../base/special/cflipsign';\nsetReadOnly( special, 'cflipsign', cflipsign );\n\n/**\n* @name cflipsignf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cflipsignf}\n*/\nimport cflipsignf from './../../../base/special/cflipsignf';\nsetReadOnly( special, 'cflipsignf', cflipsignf );\n\n/**\n* @name cfloor\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cfloor}\n*/\nimport cfloor from './../../../base/special/cfloor';\nsetReadOnly( special, 'cfloor', cfloor );\n\n/**\n* @name cfloorn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cfloorn}\n*/\nimport cfloorn from './../../../base/special/cfloorn';\nsetReadOnly( special, 'cfloorn', cfloorn );\n\n/**\n* @name cidentity\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cidentity}\n*/\nimport cidentity from './../../../base/special/cidentity';\nsetReadOnly( special, 'cidentity', cidentity );\n\n/**\n* @name cidentityf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cidentityf}\n*/\nimport cidentityf from './../../../base/special/cidentityf';\nsetReadOnly( special, 'cidentityf', cidentityf );\n\n/**\n* @name cinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cinv}\n*/\nimport cinv from './../../../base/special/cinv';\nsetReadOnly( special, 'cinv', cinv );\n\n/**\n* @name clamp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/clamp}\n*/\nimport clamp from './../../../base/special/clamp';\nsetReadOnly( special, 'clamp', clamp );\n\n/**\n* @name clampf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/clampf}\n*/\nimport clampf from './../../../base/special/clampf';\nsetReadOnly( special, 'clampf', clampf );\n\n/**\n* @name copysign\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/copysign}\n*/\nimport copysign from './../../../base/special/copysign';\nsetReadOnly( special, 'copysign', copysign );\n\n/**\n* @name copysignf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/copysignf}\n*/\nimport copysignf from './../../../base/special/copysignf';\nsetReadOnly( special, 'copysignf', copysignf );\n\n/**\n* @name cos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cos}\n*/\nimport cos from './../../../base/special/cos';\nsetReadOnly( special, 'cos', cos );\n\n/**\n* @name cosd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cosd}\n*/\nimport cosd from './../../../base/special/cosd';\nsetReadOnly( special, 'cosd', cosd );\n\n/**\n* @name cosh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cosh}\n*/\nimport cosh from './../../../base/special/cosh';\nsetReadOnly( special, 'cosh', cosh );\n\n/**\n* @name cosm1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cosm1}\n*/\nimport cosm1 from './../../../base/special/cosm1';\nsetReadOnly( special, 'cosm1', cosm1 );\n\n/**\n* @name cospi\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cospi}\n*/\nimport cospi from './../../../base/special/cospi';\nsetReadOnly( special, 'cospi', cospi );\n\n/**\n* @name cot\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cot}\n*/\nimport cot from './../../../base/special/cot';\nsetReadOnly( special, 'cot', cot );\n\n/**\n* @name cotd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cotd}\n*/\nimport cotd from './../../../base/special/cotd';\nsetReadOnly( special, 'cotd', cotd );\n\n/**\n* @name coth\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/coth}\n*/\nimport coth from './../../../base/special/coth';\nsetReadOnly( special, 'coth', coth );\n\n/**\n* @name covercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/covercos}\n*/\nimport covercos from './../../../base/special/covercos';\nsetReadOnly( special, 'covercos', covercos );\n\n/**\n* @name coversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/coversin}\n*/\nimport coversin from './../../../base/special/coversin';\nsetReadOnly( special, 'coversin', coversin );\n\n/**\n* @name cphase\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cphase}\n*/\nimport cphase from './../../../base/special/cphase';\nsetReadOnly( special, 'cphase', cphase );\n\n/**\n* @name cpolar\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cpolar}\n*/\nimport cpolar from './../../../base/special/cpolar';\nsetReadOnly( special, 'cpolar', cpolar );\n\n/**\n* @name cround\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cround}\n*/\nimport cround from './../../../base/special/cround';\nsetReadOnly( special, 'cround', cround );\n\n/**\n* @name croundn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/croundn}\n*/\nimport croundn from './../../../base/special/croundn';\nsetReadOnly( special, 'croundn', croundn );\n\n/**\n* @name csc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/csc}\n*/\nimport csc from './../../../base/special/csc';\nsetReadOnly( special, 'csc', csc );\n\n/**\n* @name cscd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/cscd}\n*/\nimport cscd from './../../../base/special/cscd';\nsetReadOnly( special, 'cscd', cscd );\n\n/**\n* @name csch\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/csch}\n*/\nimport csch from './../../../base/special/csch';\nsetReadOnly( special, 'csch', csch );\n\n/**\n* @name csignum\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/csignum}\n*/\nimport csignum from './../../../base/special/csignum';\nsetReadOnly( special, 'csignum', csignum );\n\n/**\n* @name deg2rad\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/deg2rad}\n*/\nimport deg2rad from './../../../base/special/deg2rad';\nsetReadOnly( special, 'deg2rad', deg2rad );\n\n/**\n* @name deg2radf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/deg2radf}\n*/\nimport deg2radf from './../../../base/special/deg2radf';\nsetReadOnly( special, 'deg2radf', deg2radf );\n\n/**\n* @name digamma\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/digamma}\n*/\nimport digamma from './../../../base/special/digamma';\nsetReadOnly( special, 'digamma', digamma );\n\n/**\n* @name diracDelta\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/dirac-delta}\n*/\nimport diracDelta from './../../../base/special/dirac-delta';\nsetReadOnly( special, 'diracDelta', diracDelta );\n\n/**\n* @name eta\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/dirichlet-eta}\n*/\nimport eta from './../../../base/special/dirichlet-eta';\nsetReadOnly( special, 'eta', eta );\n\n/**\n* @name ellipe\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ellipe}\n*/\nimport ellipe from './../../../base/special/ellipe';\nsetReadOnly( special, 'ellipe', ellipe );\n\n/**\n* @name ellipj\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ellipj}\n*/\nimport ellipj from './../../../base/special/ellipj';\nsetReadOnly( special, 'ellipj', ellipj );\n\n/**\n* @name ellipk\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ellipk}\n*/\nimport ellipk from './../../../base/special/ellipk';\nsetReadOnly( special, 'ellipk', ellipk );\n\n/**\n* @name erf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/erf}\n*/\nimport erf from './../../../base/special/erf';\nsetReadOnly( special, 'erf', erf );\n\n/**\n* @name erfc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/erfc}\n*/\nimport erfc from './../../../base/special/erfc';\nsetReadOnly( special, 'erfc', erfc );\n\n/**\n* @name erfcinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/erfcinv}\n*/\nimport erfcinv from './../../../base/special/erfcinv';\nsetReadOnly( special, 'erfcinv', erfcinv );\n\n/**\n* @name erfcx\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/erfcx}\n*/\nimport erfcx from './../../../base/special/erfcx';\nsetReadOnly( special, 'erfcx', erfcx );\n\n/**\n* @name erfinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/erfinv}\n*/\nimport erfinv from './../../../base/special/erfinv';\nsetReadOnly( special, 'erfinv', erfinv );\n\n/**\n* @name exp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/exp}\n*/\nimport exp from './../../../base/special/exp';\nsetReadOnly( special, 'exp', exp );\n\n/**\n* @name exp2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/exp2}\n*/\nimport exp2 from './../../../base/special/exp2';\nsetReadOnly( special, 'exp2', exp2 );\n\n/**\n* @name exp10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/exp10}\n*/\nimport exp10 from './../../../base/special/exp10';\nsetReadOnly( special, 'exp10', exp10 );\n\n/**\n* @name expit\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/expit}\n*/\nimport expit from './../../../base/special/expit';\nsetReadOnly( special, 'expit', expit );\n\n/**\n* @name expm1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/expm1}\n*/\nimport expm1 from './../../../base/special/expm1';\nsetReadOnly( special, 'expm1', expm1 );\n\n/**\n* @name expm1rel\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/expm1rel}\n*/\nimport expm1rel from './../../../base/special/expm1rel';\nsetReadOnly( special, 'expm1rel', expm1rel );\n\n/**\n* @name factorial\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/factorial}\n*/\nimport factorial from './../../../base/special/factorial';\nsetReadOnly( special, 'factorial', factorial );\n\n/**\n* @name factorial2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/factorial2}\n*/\nimport factorial2 from './../../../base/special/factorial2';\nsetReadOnly( special, 'factorial2', factorial2 );\n\n/**\n* @name factorialln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/factorialln}\n*/\nimport factorialln from './../../../base/special/factorialln';\nsetReadOnly( special, 'factorialln', factorialln );\n\n/**\n* @name fallingFactorial\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/falling-factorial}\n*/\nimport fallingFactorial from './../../../base/special/falling-factorial';\nsetReadOnly( special, 'fallingFactorial', fallingFactorial );\n\n/**\n* @name fast\n* @memberof special\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/special/fast}\n*/\nimport fast from './../../../base/special/fast';\nsetReadOnly( special, 'fast', fast );\n\n/**\n* @name fibonacci\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fibonacci}\n*/\nimport fibonacci from './../../../base/special/fibonacci';\nsetReadOnly( special, 'fibonacci', fibonacci );\n\n/**\n* @name fibonacciIndex\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fibonacci-index}\n*/\nimport fibonacciIndex from './../../../base/special/fibonacci-index';\nsetReadOnly( special, 'fibonacciIndex', fibonacciIndex );\n\n/**\n* @name flipsign\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/flipsign}\n*/\nimport flipsign from './../../../base/special/flipsign';\nsetReadOnly( special, 'flipsign', flipsign );\n\n/**\n* @name flipsignf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/flipsignf}\n*/\nimport flipsignf from './../../../base/special/flipsignf';\nsetReadOnly( special, 'flipsignf', flipsignf );\n\n/**\n* @name floor\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floor}\n*/\nimport floor from './../../../base/special/floor';\nsetReadOnly( special, 'floor', floor );\n\n/**\n* @name floor2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floor2}\n*/\nimport floor2 from './../../../base/special/floor2';\nsetReadOnly( special, 'floor2', floor2 );\n\n/**\n* @name floor10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floor10}\n*/\nimport floor10 from './../../../base/special/floor10';\nsetReadOnly( special, 'floor10', floor10 );\n\n/**\n* @name floorb\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floorb}\n*/\nimport floorb from './../../../base/special/floorb';\nsetReadOnly( special, 'floorb', floorb );\n\n/**\n* @name floorf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floorf}\n*/\nimport floorf from './../../../base/special/floorf';\nsetReadOnly( special, 'floorf', floorf );\n\n/**\n* @name floorn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floorn}\n*/\nimport floorn from './../../../base/special/floorn';\nsetReadOnly( special, 'floorn', floorn );\n\n/**\n* @name floorsd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/floorsd}\n*/\nimport floorsd from './../../../base/special/floorsd';\nsetReadOnly( special, 'floorsd', floorsd );\n\n/**\n* @name fresnel\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fresnel}\n*/\nimport fresnel from './../../../base/special/fresnel';\nsetReadOnly( special, 'fresnel', fresnel );\n\n/**\n* @name fresnelc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fresnelc}\n*/\nimport fresnelc from './../../../base/special/fresnelc';\nsetReadOnly( special, 'fresnelc', fresnelc );\n\n/**\n* @name fresnels\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/fresnels}\n*/\nimport fresnels from './../../../base/special/fresnels';\nsetReadOnly( special, 'fresnels', fresnels );\n\n/**\n* @name frexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/frexp}\n*/\nimport frexp from './../../../base/special/frexp';\nsetReadOnly( special, 'frexp', frexp );\n\n/**\n* @name gamma\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gamma}\n*/\nimport gamma from './../../../base/special/gamma';\nsetReadOnly( special, 'gamma', gamma );\n\n/**\n* @name gammaDeltaRatio\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gamma-delta-ratio}\n*/\nimport gammaDeltaRatio from './../../../base/special/gamma-delta-ratio';\nsetReadOnly( special, 'gammaDeltaRatio', gammaDeltaRatio );\n\n/**\n* @name gammaLanczosSum\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gamma-lanczos-sum}\n*/\nimport gammaLanczosSum from './../../../base/special/gamma-lanczos-sum';\nsetReadOnly( special, 'gammaLanczosSum', gammaLanczosSum );\n\n/**\n* @name gammaLanczosSumExpGScaled\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gamma-lanczos-sum-expg-scaled}\n*/\nimport gammaLanczosSumExpGScaled from './../../../base/special/gamma-lanczos-sum-expg-scaled';\nsetReadOnly( special, 'gammaLanczosSumExpGScaled', gammaLanczosSumExpGScaled );\n\n/**\n* @name gamma1pm1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gamma1pm1}\n*/\nimport gamma1pm1 from './../../../base/special/gamma1pm1';\nsetReadOnly( special, 'gamma1pm1', gamma1pm1 );\n\n/**\n* @name gammainc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gammainc}\n*/\nimport gammainc from './../../../base/special/gammainc';\nsetReadOnly( special, 'gammainc', gammainc );\n\n/**\n* @name gammaincinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gammaincinv}\n*/\nimport gammaincinv from './../../../base/special/gammaincinv';\nsetReadOnly( special, 'gammaincinv', gammaincinv );\n\n/**\n* @name gammaln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gammaln}\n*/\nimport gammaln from './../../../base/special/gammaln';\nsetReadOnly( special, 'gammaln', gammaln );\n\n/**\n* @name gammasgn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gammasgn}\n*/\nimport gammasgn from './../../../base/special/gammasgn';\nsetReadOnly( special, 'gammasgn', gammasgn );\n\n/**\n* @name gcd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/gcd}\n*/\nimport gcd from './../../../base/special/gcd';\nsetReadOnly( special, 'gcd', gcd );\n\n/**\n* @name hacovercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/hacovercos}\n*/\nimport hacovercos from './../../../base/special/hacovercos';\nsetReadOnly( special, 'hacovercos', hacovercos );\n\n/**\n* @name hacoversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/hacoversin}\n*/\nimport hacoversin from './../../../base/special/hacoversin';\nsetReadOnly( special, 'hacoversin', hacoversin );\n\n/**\n* @name havercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/havercos}\n*/\nimport havercos from './../../../base/special/havercos';\nsetReadOnly( special, 'havercos', havercos );\n\n/**\n* @name haversin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/haversin}\n*/\nimport haversin from './../../../base/special/haversin';\nsetReadOnly( special, 'haversin', haversin );\n\n/**\n* @name heaviside\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/heaviside}\n*/\nimport heaviside from './../../../base/special/heaviside';\nsetReadOnly( special, 'heaviside', heaviside );\n\n/**\n* @name hypot\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/hypot}\n*/\nimport hypot from './../../../base/special/hypot';\nsetReadOnly( special, 'hypot', hypot );\n\n/**\n* @name hypotf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/hypotf}\n*/\nimport hypotf from './../../../base/special/hypotf';\nsetReadOnly( special, 'hypotf', hypotf );\n\n/**\n* @name identity\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/identity}\n*/\nimport identity from './../../../base/special/identity';\nsetReadOnly( special, 'identity', identity );\n\n/**\n* @name identityf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/identityf}\n*/\nimport identityf from './../../../base/special/identityf';\nsetReadOnly( special, 'identityf', identityf );\n\n/**\n* @name inv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/inv}\n*/\nimport inv from './../../../base/special/inv';\nsetReadOnly( special, 'inv', inv );\n\n/**\n* @name invf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/invf}\n*/\nimport invf from './../../../base/special/invf';\nsetReadOnly( special, 'invf', invf );\n\n/**\n* @name kernelBetainc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-betainc}\n*/\nimport kernelBetainc from './../../../base/special/kernel-betainc';\nsetReadOnly( special, 'kernelBetainc', kernelBetainc );\n\n/**\n* @name kernelBetaincinv\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-betaincinv}\n*/\nimport kernelBetaincinv from './../../../base/special/kernel-betaincinv';\nsetReadOnly( special, 'kernelBetaincinv', kernelBetaincinv );\n\n/**\n* @name kernelCos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-cos}\n*/\nimport kernelCos from './../../../base/special/kernel-cos';\nsetReadOnly( special, 'kernelCos', kernelCos );\n\n/**\n* @name kernelLog1p\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-log1p}\n*/\nimport kernelLog1p from './../../../base/special/kernel-log1p';\nsetReadOnly( special, 'kernelLog1p', kernelLog1p );\n\n/**\n* @name kernelSin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-sin}\n*/\nimport kernelSin from './../../../base/special/kernel-sin';\nsetReadOnly( special, 'kernelSin', kernelSin );\n\n/**\n* @name kernelTan\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kernel-tan}\n*/\nimport kernelTan from './../../../base/special/kernel-tan';\nsetReadOnly( special, 'kernelTan', kernelTan );\n\n/**\n* @name kroneckerDelta\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kronecker-delta}\n*/\nimport kroneckerDelta from './../../../base/special/kronecker-delta';\nsetReadOnly( special, 'kroneckerDelta', kroneckerDelta );\n\n/**\n* @name kroneckerDeltaf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/kronecker-deltaf}\n*/\nimport kroneckerDeltaf from './../../../base/special/kronecker-deltaf';\nsetReadOnly( special, 'kroneckerDeltaf', kroneckerDeltaf );\n\n/**\n* @name labs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/labs}\n*/\nimport labs from './../../../base/special/labs';\nsetReadOnly( special, 'labs', labs );\n\n/**\n* @name lcm\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/lcm}\n*/\nimport lcm from './../../../base/special/lcm';\nsetReadOnly( special, 'lcm', lcm );\n\n/**\n* @name ldexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ldexp}\n*/\nimport ldexp from './../../../base/special/ldexp';\nsetReadOnly( special, 'ldexp', ldexp );\n\n/**\n* @name ln\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ln}\n*/\nimport ln from './../../../base/special/ln';\nsetReadOnly( special, 'ln', ln );\n\n/**\n* @name log\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log}\n*/\nimport log from './../../../base/special/log';\nsetReadOnly( special, 'log', log );\n\n/**\n* @name log1mexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log1mexp}\n*/\nimport log1mexp from './../../../base/special/log1mexp';\nsetReadOnly( special, 'log1mexp', log1mexp );\n\n/**\n* @name log1p\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log1p}\n*/\nimport log1p from './../../../base/special/log1p';\nsetReadOnly( special, 'log1p', log1p );\n\n/**\n* @name log1pexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log1pexp}\n*/\nimport log1pexp from './../../../base/special/log1pexp';\nsetReadOnly( special, 'log1pexp', log1pexp );\n\n/**\n* @name log1pmx\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log1pmx}\n*/\nimport log1pmx from './../../../base/special/log1pmx';\nsetReadOnly( special, 'log1pmx', log1pmx );\n\n/**\n* @name log2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log2}\n*/\nimport log2 from './../../../base/special/log2';\nsetReadOnly( special, 'log2', log2 );\n\n/**\n* @name log10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/log10}\n*/\nimport log10 from './../../../base/special/log10';\nsetReadOnly( special, 'log10', log10 );\n\n/**\n* @name logaddexp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/logaddexp}\n*/\nimport logaddexp from './../../../base/special/logaddexp';\nsetReadOnly( special, 'logaddexp', logaddexp );\n\n/**\n* @name logit\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/logit}\n*/\nimport logit from './../../../base/special/logit';\nsetReadOnly( special, 'logit', logit );\n\n/**\n* @name lucas\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/lucas}\n*/\nimport lucas from './../../../base/special/lucas';\nsetReadOnly( special, 'lucas', lucas );\n\n/**\n* @name max\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/max}\n*/\nimport max from './../../../base/special/max';\nsetReadOnly( special, 'max', max );\n\n/**\n* @name maxabs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/maxabs}\n*/\nimport maxabs from './../../../base/special/maxabs';\nsetReadOnly( special, 'maxabs', maxabs );\n\n/**\n* @name maxabsn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/maxabsn}\n*/\nimport maxabsn from './../../../base/special/maxabsn';\nsetReadOnly( special, 'maxabsn', maxabsn );\n\n/**\n* @name maxn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/maxn}\n*/\nimport maxn from './../../../base/special/maxn';\nsetReadOnly( special, 'maxn', maxn );\n\n/**\n* @name min\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/min}\n*/\nimport min from './../../../base/special/min';\nsetReadOnly( special, 'min', min );\n\n/**\n* @name minabs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minabs}\n*/\nimport minabs from './../../../base/special/minabs';\nsetReadOnly( special, 'minabs', minabs );\n\n/**\n* @name minabsn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minabsn}\n*/\nimport minabsn from './../../../base/special/minabsn';\nsetReadOnly( special, 'minabsn', minabsn );\n\n/**\n* @name minmax\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minmax}\n*/\nimport minmax from './../../../base/special/minmax';\nsetReadOnly( special, 'minmax', minmax );\n\n/**\n* @name minmaxabs\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minmaxabs}\n*/\nimport minmaxabs from './../../../base/special/minmaxabs';\nsetReadOnly( special, 'minmaxabs', minmaxabs );\n\n/**\n* @name minmaxabsn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minmaxabsn}\n*/\nimport minmaxabsn from './../../../base/special/minmaxabsn';\nsetReadOnly( special, 'minmaxabsn', minmaxabsn );\n\n/**\n* @name minmaxn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minmaxn}\n*/\nimport minmaxn from './../../../base/special/minmaxn';\nsetReadOnly( special, 'minmaxn', minmaxn );\n\n/**\n* @name minn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/minn}\n*/\nimport minn from './../../../base/special/minn';\nsetReadOnly( special, 'minn', minn );\n\n/**\n* @name modf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/modf}\n*/\nimport modf from './../../../base/special/modf';\nsetReadOnly( special, 'modf', modf );\n\n/**\n* @name negafibonacci\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/negafibonacci}\n*/\nimport negafibonacci from './../../../base/special/negafibonacci';\nsetReadOnly( special, 'negafibonacci', negafibonacci );\n\n/**\n* @name negalucas\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/negalucas}\n*/\nimport negalucas from './../../../base/special/negalucas';\nsetReadOnly( special, 'negalucas', negalucas );\n\n/**\n* @name nonfibonacci\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/nonfibonacci}\n*/\nimport nonfibonacci from './../../../base/special/nonfibonacci';\nsetReadOnly( special, 'nonfibonacci', nonfibonacci );\n\n/**\n* @name pdiff\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/pdiff}\n*/\nimport pdiff from './../../../base/special/pdiff';\nsetReadOnly( special, 'pdiff', pdiff );\n\n/**\n* @name pdifff\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/pdifff}\n*/\nimport pdifff from './../../../base/special/pdifff';\nsetReadOnly( special, 'pdifff', pdifff );\n\n/**\n* @name polygamma\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/polygamma}\n*/\nimport polygamma from './../../../base/special/polygamma';\nsetReadOnly( special, 'polygamma', polygamma );\n\n/**\n* @name pow\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/pow}\n*/\nimport pow from './../../../base/special/pow';\nsetReadOnly( special, 'pow', pow );\n\n/**\n* @name powm1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/powm1}\n*/\nimport powm1 from './../../../base/special/powm1';\nsetReadOnly( special, 'powm1', powm1 );\n\n/**\n* @name rad2deg\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rad2deg}\n*/\nimport rad2deg from './../../../base/special/rad2deg';\nsetReadOnly( special, 'rad2deg', rad2deg );\n\n/**\n* @name rad2degf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rad2degf}\n*/\nimport rad2degf from './../../../base/special/rad2degf';\nsetReadOnly( special, 'rad2degf', rad2degf );\n\n/**\n* @name ramp\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/ramp}\n*/\nimport ramp from './../../../base/special/ramp';\nsetReadOnly( special, 'ramp', ramp );\n\n/**\n* @name rampf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rampf}\n*/\nimport rampf from './../../../base/special/rampf';\nsetReadOnly( special, 'rampf', rampf );\n\n/**\n* @name rcbrt\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rcbrt}\n*/\nimport rcbrt from './../../../base/special/rcbrt';\nsetReadOnly( special, 'rcbrt', rcbrt );\n\n/**\n* @name rcbrtf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rcbrtf}\n*/\nimport rcbrtf from './../../../base/special/rcbrtf';\nsetReadOnly( special, 'rcbrtf', rcbrtf );\n\n/**\n* @name rempio2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rempio2}\n*/\nimport rempio2 from './../../../base/special/rempio2';\nsetReadOnly( special, 'rempio2', rempio2 );\n\n/**\n* @name zeta\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/riemann-zeta}\n*/\nimport zeta from './../../../base/special/riemann-zeta';\nsetReadOnly( special, 'zeta', zeta );\n\n/**\n* @name risingFactorial\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rising-factorial}\n*/\nimport risingFactorial from './../../../base/special/rising-factorial';\nsetReadOnly( special, 'risingFactorial', risingFactorial );\n\n/**\n* @name round\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/round}\n*/\nimport round from './../../../base/special/round';\nsetReadOnly( special, 'round', round );\n\n/**\n* @name round2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/round2}\n*/\nimport round2 from './../../../base/special/round2';\nsetReadOnly( special, 'round2', round2 );\n\n/**\n* @name round10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/round10}\n*/\nimport round10 from './../../../base/special/round10';\nsetReadOnly( special, 'round10', round10 );\n\n/**\n* @name roundb\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/roundb}\n*/\nimport roundb from './../../../base/special/roundb';\nsetReadOnly( special, 'roundb', roundb );\n\n/**\n* @name roundn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/roundn}\n*/\nimport roundn from './../../../base/special/roundn';\nsetReadOnly( special, 'roundn', roundn );\n\n/**\n* @name roundsd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/roundsd}\n*/\nimport roundsd from './../../../base/special/roundsd';\nsetReadOnly( special, 'roundsd', roundsd );\n\n/**\n* @name rsqrt\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rsqrt}\n*/\nimport rsqrt from './../../../base/special/rsqrt';\nsetReadOnly( special, 'rsqrt', rsqrt );\n\n/**\n* @name rsqrtf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/rsqrtf}\n*/\nimport rsqrtf from './../../../base/special/rsqrtf';\nsetReadOnly( special, 'rsqrtf', rsqrtf );\n\n/**\n* @name secd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/secd}\n*/\nimport secd from './../../../base/special/secd';\nsetReadOnly( special, 'secd', secd );\n\n/**\n* @name sici\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sici}\n*/\nimport sici from './../../../base/special/sici';\nsetReadOnly( special, 'sici', sici );\n\n/**\n* @name signum\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/signum}\n*/\nimport signum from './../../../base/special/signum';\nsetReadOnly( special, 'signum', signum );\n\n/**\n* @name signumf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/signumf}\n*/\nimport signumf from './../../../base/special/signumf';\nsetReadOnly( special, 'signumf', signumf );\n\n/**\n* @name sin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sin}\n*/\nimport sin from './../../../base/special/sin';\nsetReadOnly( special, 'sin', sin );\n\n/**\n* @name sinc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sinc}\n*/\nimport sinc from './../../../base/special/sinc';\nsetReadOnly( special, 'sinc', sinc );\n\n/**\n* @name sincos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sincos}\n*/\nimport sincos from './../../../base/special/sincos';\nsetReadOnly( special, 'sincos', sincos );\n\n/**\n* @name sincospi\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sincospi}\n*/\nimport sincospi from './../../../base/special/sincospi';\nsetReadOnly( special, 'sincospi', sincospi );\n\n/**\n* @name sinh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sinh}\n*/\nimport sinh from './../../../base/special/sinh';\nsetReadOnly( special, 'sinh', sinh );\n\n/**\n* @name sinpi\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sinpi}\n*/\nimport sinpi from './../../../base/special/sinpi';\nsetReadOnly( special, 'sinpi', sinpi );\n\n/**\n* @name spence\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/spence}\n*/\nimport spence from './../../../base/special/spence';\nsetReadOnly( special, 'spence', spence );\n\n/**\n* @name sqrt\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sqrt}\n*/\nimport sqrt from './../../../base/special/sqrt';\nsetReadOnly( special, 'sqrt', sqrt );\n\n/**\n* @name sqrt1pm1\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sqrt1pm1}\n*/\nimport sqrt1pm1 from './../../../base/special/sqrt1pm1';\nsetReadOnly( special, 'sqrt1pm1', sqrt1pm1 );\n\n/**\n* @name sqrtf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sqrtf}\n*/\nimport sqrtf from './../../../base/special/sqrtf';\nsetReadOnly( special, 'sqrtf', sqrtf );\n\n/**\n* @name sqrtpi\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/sqrtpi}\n*/\nimport sqrtpi from './../../../base/special/sqrtpi';\nsetReadOnly( special, 'sqrtpi', sqrtpi );\n\n/**\n* @name tan\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/tan}\n*/\nimport tan from './../../../base/special/tan';\nsetReadOnly( special, 'tan', tan );\n\n/**\n* @name tand\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/tand}\n*/\nimport tand from './../../../base/special/tand';\nsetReadOnly( special, 'tand', tand );\n\n/**\n* @name tanh\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/tanh}\n*/\nimport tanh from './../../../base/special/tanh';\nsetReadOnly( special, 'tanh', tanh );\n\n/**\n* @name tribonacci\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/tribonacci}\n*/\nimport tribonacci from './../../../base/special/tribonacci';\nsetReadOnly( special, 'tribonacci', tribonacci );\n\n/**\n* @name trigamma\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/trigamma}\n*/\nimport trigamma from './../../../base/special/trigamma';\nsetReadOnly( special, 'trigamma', trigamma );\n\n/**\n* @name trunc\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/trunc}\n*/\nimport trunc from './../../../base/special/trunc';\nsetReadOnly( special, 'trunc', trunc );\n\n/**\n* @name trunc2\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/trunc2}\n*/\nimport trunc2 from './../../../base/special/trunc2';\nsetReadOnly( special, 'trunc2', trunc2 );\n\n/**\n* @name trunc10\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/trunc10}\n*/\nimport trunc10 from './../../../base/special/trunc10';\nsetReadOnly( special, 'trunc10', trunc10 );\n\n/**\n* @name truncb\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/truncb}\n*/\nimport truncb from './../../../base/special/truncb';\nsetReadOnly( special, 'truncb', truncb );\n\n/**\n* @name truncf\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/truncf}\n*/\nimport truncf from './../../../base/special/truncf';\nsetReadOnly( special, 'truncf', truncf );\n\n/**\n* @name truncn\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/truncn}\n*/\nimport truncn from './../../../base/special/truncn';\nsetReadOnly( special, 'truncn', truncn );\n\n/**\n* @name truncsd\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/truncsd}\n*/\nimport truncsd from './../../../base/special/truncsd';\nsetReadOnly( special, 'truncsd', truncsd );\n\n/**\n* @name vercos\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/vercos}\n*/\nimport vercos from './../../../base/special/vercos';\nsetReadOnly( special, 'vercos', vercos );\n\n/**\n* @name versin\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/versin}\n*/\nimport versin from './../../../base/special/versin';\nsetReadOnly( special, 'versin', versin );\n\n/**\n* @name wrap\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/wrap}\n*/\nimport wrap from './../../../base/special/wrap';\nsetReadOnly( special, 'wrap', wrap );\n\n/**\n* @name xlog1py\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/xlog1py}\n*/\nimport xlog1py from './../../../base/special/xlog1py';\nsetReadOnly( special, 'xlog1py', xlog1py );\n\n/**\n* @name xlogy\n* @memberof special\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/special/xlogy}\n*/\nimport xlogy from './../../../base/special/xlogy';\nsetReadOnly( special, 'xlogy', xlogy );\n\n\n// EXPORTS //\n\nexport default special;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Evaluates a polynomial using single-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} c - polynomial coefficients sorted in ascending degree\n* @param {number} x - value at which to evaluate the polynomial\n* @returns {number} evaluated polynomial\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var v = evalpolyf( new Float32Array( [ 3.0, 2.0, 1.0 ] ), 10.0 ); // 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*/\nfunction evalpolyf( c, x ) {\n\tvar p;\n\tvar i;\n\n\ti = c.length;\n\tif ( i < 2 || x === 0.0 ) {\n\t\tif ( i === 0 ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\treturn c[ 0 ];\n\t}\n\ti -= 1;\n\tp = float64ToFloat32( float64ToFloat32( c[ i ] * x ) + c[ i-1 ] );\n\ti -= 2;\n\twhile ( i >= 0 ) {\n\t\tp = float64ToFloat32( float64ToFloat32( p * x ) + c[ i ] );\n\t\ti -= 1;\n\t}\n\treturn p;\n}\n\n\n// EXPORTS //\n\nexport default evalpolyf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_60_0/boost/math/tools/rational.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)) using double-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} P - numerator polynomial coefficients sorted in ascending degree\n* @param {NumericArray} Q - denominator polynomial coefficients sorted in ascending degree\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*\n* @example\n* var P = [ -6.0, -5.0 ];\n* var Q = [ 3.0, 0.5 ];\n*\n* var v = evalrational( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 ) / ( 3*6^0 + 0.5*6^1 ) = (-6-30)/(3+3)\n* // returns -6.0\n*\n* @example\n* // 2x^3 + 4x^2 - 5x^1 - 6x^0 => degree 4\n* var P = [ -6.0, -5.0, 4.0, 2.0 ];\n*\n* // 0.5x^1 + 3x^0 => degree 2\n* var Q = [ 3.0, 0.5, 0.0, 0.0 ]; // zero-padded\n*\n* var v = evalrational( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 + 4*6^2 + 2*6^3 ) / ( 3*6^0 + 0.5*6^1 + 0*6^2 + 0*6^3 ) = (-6-30+144+432)/(3+3)\n* // returns 90.0\n*/\nfunction evalrational( P, Q, x ) {\n\tvar len;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tlen = P.length;\n\tif ( len === 0 ) {\n\t\treturn NaN;\n\t}\n\tif ( len !== Q.length ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 || len === 1 ) {\n\t\treturn P[ 0 ] / Q[ 0 ];\n\t}\n\t// Use Horner's method...\n\tif ( abs( x ) <= 1.0 ) {\n\t\ts1 = P[ len-1 ];\n\t\ts2 = Q[ len-1 ];\n\t\tfor ( i = len-2; i >= 0; --i ) {\n\t\t\ts1 *= x;\n\t\t\ts2 *= x;\n\t\t\ts1 += P[ i ];\n\t\t\ts2 += Q[ i ];\n\t\t}\n\t} else {\n\t\tx = 1.0 / x; // use inverse to avoid overflow\n\t\ts1 = P[ 0 ];\n\t\ts2 = Q[ 0 ];\n\t\tfor ( i = 1; i < len; ++i ) {\n\t\t\ts1 *= x;\n\t\t\ts2 *= x;\n\t\t\ts1 += P[ i ];\n\t\t\ts2 += Q[ i ];\n\t\t}\n\t}\n\treturn s1 / s2;\n}\n\n\n// EXPORTS //\n\nexport default evalrational;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_60_0/boost/math/tools/rational.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport absf from './../../../../base/special/absf';\n\n\n// MAIN //\n\n/**\n* Evaluates a rational function (i.e., the ratio of two polynomials described by the coefficients stored in \\\\(P\\\\) and \\\\(Q\\\\)) using single-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - Coefficients should be sorted in ascending degree.\n* - The implementation uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} P - numerator polynomial coefficients sorted in ascending degree\n* @param {NumericArray} Q - denominator polynomial coefficients sorted in ascending degree\n* @param {number} x - value at which to evaluate the rational function\n* @returns {number} evaluated rational function\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var P = new Float32Array( [ -6.0, -5.0 ] );\n* var Q = new Float32Array( [ 3.0, 0.5 ] );\n*\n* var v = evalrationalf( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 ) / ( 3*6^0 + 0.5*6^1 ) = (-6-30)/(3+3)\n* // returns -6.0\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* // 2x^3 + 4x^2 - 5x^1 - 6x^0 => degree 4\n* var P = new Float32Array( [ -6.0, -5.0, 4.0, 2.0 ] );\n*\n* // 0.5x^1 + 3x^0 => degree 2\n* var Q = new Float32Array( [ 3.0, 0.5, 0.0, 0.0 ] ); // zero-padded\n*\n* var v = evalrationalf( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 + 4*6^2 + 2*6^3 ) / ( 3*6^0 + 0.5*6^1 + 0*6^2 + 0*6^3 ) = (-6-30+144+432)/(3+3)\n* // returns ~90.0\n*/\nfunction evalrationalf( P, Q, x ) {\n\tvar len;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tlen = P.length;\n\tif ( len === 0 ) {\n\t\treturn NaN;\n\t}\n\tif ( len !== Q.length ) {\n\t\treturn NaN;\n\t}\n\tif ( x === 0.0 || len === 1 ) {\n\t\treturn float64ToFloat32( P[ 0 ] / Q[ 0 ] );\n\t}\n\t// Use Horner's method...\n\tif ( absf( x ) <= 1.0 ) {\n\t\ts1 = P[ len-1 ];\n\t\ts2 = Q[ len-1 ];\n\t\tfor ( i = len-2; i >= 0; --i ) {\n\t\t\ts1 = float64ToFloat32( s1 * x );\n\t\t\ts2 = float64ToFloat32( s2 * x );\n\t\t\ts1 = float64ToFloat32( s1 + P[ i ] );\n\t\t\ts2 = float64ToFloat32( s2 + Q[ i ] );\n\t\t}\n\t} else {\n\t\tx = float64ToFloat32( 1.0 / x ); // use inverse to avoid overflow\n\t\ts1 = P[ 0 ];\n\t\ts2 = Q[ 0 ];\n\t\tfor ( i = 1; i < len; ++i ) {\n\t\t\ts1 = float64ToFloat32( s1 * x );\n\t\t\ts2 = float64ToFloat32( s2 * x );\n\t\t\ts1 = float64ToFloat32( s1 + P[ i ] );\n\t\t\ts2 = float64ToFloat32( s2 + Q[ i ] );\n\t\t}\n\t}\n\treturn float64ToFloat32( s1 / s2 );\n}\n\n\n// EXPORTS //\n\nexport default evalrationalf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the arccosine (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arccosine (in degrees)\n*\n* @example\n* var v = acosd( 0.0 );\n* // returns 90.0\n*\n* @example\n* var v = acosd( 0.5 );\n* // returns ~60.0\n*\n* @example\n* var v = acosd( Math.sqrt( 2 ) / 2 );\n* // returns ~45.0\n*\n* @example\n* var v = acosd( Math.sqrt( 3 ) / 2 );\n* // returns ~30.0\n*\n* @example\n* var v = acosd( NaN );\n* // returns NaN\n*/\nfunction acosd( x ) {\n\tvar rad = acos( x );\n\treturn rad2deg( rad );\n}\n\n\n// EXPORTS //\n\nexport default acosd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport acot from './../../../../base/special/acot';\n\n\n// MAIN //\n\n/**\n* Computes the arccotangent (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arccotangent (in degrees)\n*\n* @example\n* var v = acotd( 0.0 );\n* // returns 90.0\n*\n* @example\n* var v = acotd( Math.sqrt( 3 ) );\n* // returns ~30.0\n*\n* @example\n* var v = acotd( 1 );\n* // returns 45.0\n*\n* @example\n* var v = acotd( Math.sqrt( 3 ) / 3 );\n* // returns ~60.0\n*\n* @example\n* var v = acotd( NaN );\n* // returns NaN\n*/\nfunction acotd( x ) {\n\tvar rad = acot( x );\n\treturn rad2deg( rad );\n}\n\n\n// EXPORTS //\n\nexport default acotd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atanf from './../../../../base/special/atanf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the inverse cotangent of a single-precision floating-point number.\n*\n* ## Method\n*\n* ```text\n* \\operatorname{acotf}(x) = \\operatorname{atanf}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} inverse cotangent (in radians)\n*\n* @example\n* var v = acotf( 2.0 );\n* // returns ~0.4636\n*\n* @example\n* var v = acotf( 0.0 );\n* // returns ~1.5708\n*\n* @example\n* var v = acotf( 0.5 );\n* // returns ~1.1071\n*\n* @example\n* var v = acotf( 1.0 );\n* // returns ~0.7854\n*\n* @example\n* var v = acotf( NaN );\n* // returns NaN\n*\n* @example\n* var v = acotf( Infinity );\n* // returns 0.0\n*/\nfunction acotf( x ) {\n\treturn atanf( float64ToFloat32( 1.0 / float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default acotf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport acsc from './../../../../base/special/acsc';\n\n\n// MAIN //\n\n/**\n* Computes the arccosecant (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arccosecant (in degrees)\n*\n* @example\n* var v = acscd( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = acscd( 2 * Math.sqrt( 3 ) / 3 );\n* // returns ~60.0\n*\n* @example\n* var v = acscd( Math.sqrt( 2 ) );\n* // returns ~45.0\n*\n* @example\n* var v = acscd( 2 );\n* // returns ~30.0\n*\n* @example\n* var v = acscd( 1 );\n* // returns 90.0\n*\n* @example\n* var v = acscd( NaN );\n* // returns NaN\n*/\nfunction acscd( x ) {\n\tvar rad = acsc( x );\n\treturn rad2deg( rad );\n}\n\n\n// EXPORTS //\n\nexport default acscd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2degf from './../../../../base/special/rad2degf';\nimport acscf from './../../../../base/special/acscf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the arccosecant (in degrees) of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arccosecant (in degrees)\n*\n* @example\n* var v = acscdf( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = acscdf( 2.0 );\n* // returns ~30.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = acscdf( 2.0 * sqrtf( 3.0 ) / 3.0 );\n* // returns ~60.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = acscdf( sqrtf( 2.0 ) );\n* // returns ~45.0\n*\n* @example\n* var v = acscdf( 1.0 );\n* // returns 90.0\n*\n* @example\n* var v = acscdf( NaN );\n* // returns NaN\n*/\nfunction acscdf( x ) {\n\treturn rad2degf( acscf( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default acscdf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport asinh from './../../../../base/special/asinh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arccosecant of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arccosecant\n*\n* @example\n* var v = acsch( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = acsch( -1.0 );\n* // returns ~-0.881\n*\n* @example\n* var v = acsch( 1.0 );\n* // returns ~0.881\n*/\nfunction acsch( x ) {\n\treturn asinh( 1.0 / x );\n}\n\n\n// EXPORTS //\n\nexport default acsch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport asec from './../../../../base/special/asec';\n\n\n// MAIN //\n\n/**\n* Computes the arcsecant (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arcsecant (in degrees)\n*\n* @example\n* var v = asecd( 1 );\n* // returns 0.0\n*\n* @example\n* var v = asecd( 2 * Math.sqrt( 3 ) / 3 );\n* // returns ~30.0\n*\n* @example\n* var v = asecd( Math.sqrt( 2 ) );\n* // returns ~45.0\n*\n* @example\n* var v = asecd( 2 );\n* // returns ~60.0\n*\n* @example\n* var v = asecd( Infinity );\n* // returns 90.0\n*\n* @example\n* var v = asecd( NaN );\n* // returns NaN\n*/\nfunction asecd( x ) {\n\tvar rad = asec( x );\n\treturn rad2deg( rad );\n}\n\n\n// EXPORTS //\n\nexport default asecd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2degf from './../../../../base/special/rad2degf';\nimport asecf from './../../../../base/special/asecf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the arcsecant (in degrees) of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arcsecant (in degrees)\n*\n* @example\n* var v = asecdf( Infinity );\n* // returns 90.0\n*\n* @example\n* var v = asecdf( 2.0 );\n* // returns ~60.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = asecdf( 2.0 * sqrtf( 3.0 ) / 3.0 );\n* // returns ~30.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = asecdf( sqrtf( 2.0 ) );\n* // returns 45.0\n*\n* @example\n* var v = asecdf( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = asecdf( NaN );\n* // returns NaN\n*/\nfunction asecdf( x ) {\n\treturn rad2degf( asecf( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default asecdf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport acosh from './../../../../base/special/acosh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arcsecant of a number.\n*\n* ## Method\n*\n* ```tex\n* \\operatorname{asech}(x) = \\operatorname{acosh}(\\frac{1}{x})\n* ```\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic arcsecant\n*\n* @example\n* var v = asech( 1.0 );\n* // returns 0.0\n*\n* @example\n* var v = asech( 0.5 );\n* // returns ~1.317\n*\n* @example\n* var v = asech( NaN );\n* // returns NaN\n*/\nfunction asech( x ) {\n\treturn acosh( 1.0 / x );\n}\n\n\n// EXPORTS //\n\nexport default asech;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the arcsine (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arcsine (in degrees)\n*\n* @example\n* var v = asind( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = asind( 0.5 );\n* // returns ~30.0\n*\n* @example\n* import sqrt from '@stdlib/math/base/special/sqrt';\n*\n* var v = asind( sqrt( 2.0 ) / 2.0 );\n* // returns ~45.0\n*\n* @example\n* import sqrt from '@stdlib/math/base/special/sqrt';\n*\n* var v = asind( sqrt( 3.0 ) / 2.0 );\n* // returns ~60.0\n*\n* @example\n* var v = asind( NaN );\n* // returns NaN\n*/\nfunction asind( x ) {\n\treturn rad2deg( asin( x ) );\n}\n\n\n// EXPORTS //\n\nexport default asind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2degf from './../../../../base/special/rad2degf';\nimport asinf from './../../../../base/special/asinf';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\n\n\n// MAIN //\n\n/**\n* Computes the arcsine (in degrees) of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arcsine (in degrees)\n*\n* @example\n* var v = asindf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = asindf( 0.5 );\n* // returns ~30.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = asindf( sqrtf( 2.0 ) / 2.0 );\n* // returns ~45.0\n*\n* @example\n* import sqrtf from '@stdlib/math/base/special/sqrtf';\n*\n* var v = asindf( sqrtf( 3.0 ) / 2.0 );\n* // returns ~60.0\n*\n* @example\n* var v = asindf( NaN );\n* // returns NaN\n*/\nfunction asindf( x ) {\n\treturn rad2degf( asinf( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default asindf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rad2deg from './../../../../base/special/rad2deg';\nimport atan from './../../../../base/special/atan';\n\n\n// MAIN //\n\n/**\n* Computes the arctangent (in degrees) of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} arctangent (in degrees)\n*\n* @example\n* var v = atand( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = atand( 0.5 );\n* // returns ~26.57\n*\n* @example\n* var v = atand( 1.0 / Math.sqrt( 3.0 ) );\n* // returns ~30.0\n*\n* @example\n* var v = atand( 1.0 );\n* // returns 45.0\n*\n* @example\n* var v = atand( Infinity );\n* // returns 90.0\n*\n* @example\n* var v = atand( NaN );\n* // returns NaN\n*/\nfunction atand( x ) {\n\tvar rad = atan( x );\n\treturn rad2deg( rad );\n}\n\n\n// EXPORTS //\n\nexport default atand;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport kernelBetaincinv from './../../../../base/special/kernel-betaincinv';\n\n\n// MAIN //\n\n/**\n* Returns a value `p` such that `p = betainc(a, b, x)`.\n*\n* @param {Probability} p - function parameter\n* @param {PositiveNumber} a - function parameter\n* @param {PositiveNumber} b - function parameter\n* @param {boolean} [upper=false] - boolean indicating if the function should return the inverse of the upper tail of the incomplete beta function\n* @returns {number} function value\n*\n* @example\n* var y = betaincinv( 0.2, 3.0, 3.0 );\n* // returns ~0.327\n*\n* @example\n* var y = betaincinv( 0.4, 3.0, 3.0 );\n* // returns ~0.446\n*\n* @example\n* var y = betaincinv( 0.4, 3.0, 3.0, true );\n* // returns ~0.554\n*\n* @example\n* var y = betaincinv( 0.4, 1.0, 6.0 );\n* // returns ~0.082\n*\n* @example\n* var y = betaincinv( 0.8, 1.0, 6.0 );\n* // returns ~0.235\n*/\nfunction betaincinv( p, a, b, upper ) {\n\tif (\n\t\tisnan( p ) ||\n\t\tisnan( a ) ||\n\t\tisnan( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( a <= 0.0 || b <= 0.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( p < 0.0 || p > 1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( upper ) {\n\t\treturn kernelBetaincinv( a, b, 1.0 - p, p )[ 0 ];\n\t}\n\treturn kernelBetaincinv( a, b, p, 1.0 - p )[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default betaincinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from './../../../../base/assert/is-integer';\nimport isnan from './../../../../base/assert/is-nan';\nimport betaln from './../../../../base/special/betaln';\nimport abs from './../../../../base/special/abs';\nimport ln from './../../../../base/special/ln';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Computes the natural logarithm of the binomial coefficient of two integers.\n*\n* @param {integer} n - input value\n* @param {integer} k - second input value\n* @returns {number} function value\n*\n* @example\n* var v = binomcoefln( 8, 2 );\n* // returns ~3.332\n*\n* @example\n* var v = binomcoefln( 0, 0 );\n* // returns 0.0\n*\n* @example\n* var v = binomcoefln( -4, 2 );\n* // returns ~2.303\n*\n* @example\n* var v = binomcoefln( 88, 3 );\n* // returns ~11.606\n*\n* @example\n* var v = binomcoefln( NaN, 3 );\n* // returns NaN\n*\n* @example\n* var v = binomcoefln( 5, NaN );\n* // returns NaN\n*\n* @example\n* var v = binomcoefln( NaN, NaN );\n* // returns NaN\n*/\nfunction binomcoefln( n, k ) {\n\tif ( isnan( n ) || isnan( k ) ) {\n\t\treturn NaN;\n\t}\n\tif ( !isInteger( n ) || !isInteger( k ) ) {\n\t\treturn NaN;\n\t}\n\tif ( n < 0.0 ) {\n\t\treturn binomcoefln( -n + k - 1, k );\n\t}\n\tif ( k < 0 ) {\n\t\treturn NINF;\n\t}\n\tif ( k === 0 ) {\n\t\treturn 0.0;\n\t}\n\tif ( k === 1 ) {\n\t\treturn ln( abs( n ) );\n\t}\n\tif ( n < k ) {\n\t\treturn NINF;\n\t}\n\tif ( n - k < 2 ) {\n\t\treturn binomcoefln( n, n - k );\n\t}\n\t// Case: n - k >= 2\n\treturn -ln( n + 1 ) - betaln( n - k + 1, k + 1 );\n}\n\n\n// EXPORTS //\n\nexport default binomcoefln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport isnan from './../../../../base/assert/is-nan';\nimport isPositiveZero from './../../../../base/assert/is-positive-zero';\nimport ln from './../../../../base/special/ln';\nimport expm1 from './../../../../base/special/expm1';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Computes a one-parameter Box-Cox transformation.\n*\n* ## Method\n*\n* - If \\\\( \\lambda << 1 \\\\) and \\\\( \\ln( x ) < 1.0 \\\\), then the product \\\\( \\lambda \\cdot \\ln(x) \\\\) can lose precision, and, furthermore, \\\\( \\operatorname{expm1}(x) = x \\\\) for \\\\( x < \\epsilon \\\\).\n* - For double-precision floating-point numbers, the range of the natural log is \\\\( \\[-744.44, 709.78\\] and \\\\( \\epsilon \\\\) is the smallest value produced.\n* - The value range means that we will have \\\\( |\\lambda \\cdot \\ln(x)| < \\epsilon \\\\) whenever \\\\( |\\lambda| \\leq \\frac{\\epsilon}{-\\ln(d) \\\\), where \\\\( d \\\\) is the minimum double-precision floating-point number, thus corresponding to the value \\\\( \\approx 2.98 \\times 10^{-19} \\\\).\n*\n* @param {number} x - input value\n* @param {number} lambda - power parameter\n* @returns {number} Box-Cox transformation\n*\n* @example\n* var v = boxcox( 1.0, 2.5 );\n* // returns 0.0\n*\n* @example\n* var v = boxcox( 4.0, 2.5 );\n* // returns 12.4\n*\n* @example\n* var v = boxcox( 10.0, 2.5 );\n* // returns ~126.0911\n*\n* @example\n* var v = boxcox( 2.0, 0.0 );\n* // returns ~0.6931\n*\n* @example\n* var v = boxcox( -1.0, 2.5 );\n* // returns NaN\n*\n* @example\n* var v = boxcox( 0.0, -1.0 );\n* // returns -Infinity\n*/\nfunction boxcox( x, lambda ) {\n\tif ( isnan( x ) || isnan( lambda ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isPositiveZero( x ) && lambda < 0.0 ) {\n\t\treturn NINF;\n\t}\n\tif ( abs( lambda ) < 1.0e-19 ) {\n\t\treturn ln( x );\n\t}\n\treturn expm1( lambda*ln( x ) ) / lambda;\n}\n\n\n// EXPORTS //\n\nexport default boxcox;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport log1p from './../../../../base/special/log1p';\nimport abs from './../../../../base/special/abs';\nimport expm1 from './../../../../base/special/expm1';\nimport isnan from './../../../../base/assert/is-nan';\nimport NINF from '@stdlib/constants/float64/ninf';\n\n\n// MAIN //\n\n/**\n* Computes a one-parameter Box-Cox transformation of `1+x`.\n*\n* ## Method\n*\n* When computing a one-parameter Box-Cox transformation\n*\n* - If \\\\( \\lambda << 1 \\\\) and \\\\( \\ln( x ) < 1.0 \\\\), then the product \\\\( \\lambda \\cdot \\ln(x) \\\\) can lose precision, and, furthermore, \\\\( \\operatorname{expm1}(x) = x \\\\) for \\\\( x < \\epsilon \\\\).\n* - For double-precision floating-point numbers, the range of the natural log is \\\\( \\[-744.44, 709.78\\] and \\\\( \\epsilon \\\\) is the smallest value produced.\n* - The value range means that we will have \\\\( |\\lambda \\cdot \\ln(x)| < \\epsilon \\\\) whenever \\\\( |\\lambda| \\leq \\frac{\\epsilon}{-\\ln(d) \\\\), where \\\\( d \\\\) is the minimum double-precision floating-point number, thus corresponding to the value \\\\( \\approx 2.98 \\times 10^{-19} \\\\).\n*\n* For small `x` values, the same method described above applies with the modification that the smallest value returned by \\\\( \\operatorname{log1p}(x) \\\\) is the minimum representable value, not \\\\( \\epsilon \\\\). Furthermore, we need to guard against underflow when \\\\( \\operatorname{log1p}(x) < \\epsilon \\\\).\n*\n* @param {number} x - input value\n* @param {number} lambda - power parameter\n* @returns {number} Box-Cox transformation of `1+x`\n*\n* @example\n* var v = boxcox1p( 1.0, 2.5 );\n* // returns ~1.8627\n*\n* @example\n* var v = boxcox1p( 4.0, 2.5 );\n* // returns ~21.9607\n*\n* @example\n* var v = boxcox1p( 10.0, 2.5 );\n* // returns ~160.1246\n*\n* @example\n* var v = boxcox1p( 2.0, 0.0 );\n* // returns ~1.0986\n*\n* @example\n* var v = boxcox1p( -1.0, 2.5 );\n* // returns -0.4\n*\n* @example\n* var v = boxcox1p( 0.0, -1.0 );\n* // returns 0.0\n*\n* @example\n* var v = boxcox1p( -1.0, -1.0 );\n* // returns -Infinity\n*/\nfunction boxcox1p( x, lambda ) {\n\tvar lgx;\n\tif ( isnan( x ) || isnan( lambda ) || x < -1.0 ) {\n\t\treturn NaN;\n\t}\n\tif ( x === -1.0 && lambda < 0.0 ) {\n\t\treturn NINF;\n\t}\n\tlgx = log1p( x );\n\tif (\n\t\tabs( lambda ) < 1.0e-19 ||\n\n\t\t// Guard against underflow...\n\t\t(\n\t\t\tabs( lgx ) < 1.0e-289 &&\n\t\t\tabs( lambda ) < 1.0e273\n\t\t)\n\t) {\n\t\treturn lgx;\n\t}\n\treturn expm1( lambda*lgx ) / lambda;\n}\n\n\n// EXPORTS //\n\nexport default boxcox1p;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport expm1 from './../../../../base/special/expm1';\nimport log1p from './../../../../base/special/log1p';\nimport abs from './../../../../base/special/abs';\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Computes the inverse of a one-parameter Box-Cox transformation for `1+x`.\n*\n* @param {number} y - input value\n* @param {number} lambda - power parameter\n* @returns {number} inverse of the Box-Cox transformation\n*\n* @example\n* var v = boxcox1pinv( 1.0, 2.5 );\n* // returns ~0.6505\n*\n* @example\n* var v = boxcox1pinv( 4.0, 2.5 );\n* // returns ~1.6095\n*\n* @example\n* var v = boxcox1pinv( 10.0, 2.5 );\n* // returns ~2.6812\n*\n* @example\n* var v = boxcox1pinv( 2.0, 0.0 );\n* // returns ~6.3891\n*\n* @example\n* var v = boxcox1pinv( -1.0, 2.5 );\n* // returns NaN\n*\n* @example\n* var v = boxcox1pinv( 0.0, -1.0 );\n* // returns 0.0\n*\n* @example\n* var v = boxcox1pinv( 1.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = boxcox1pinv( NaN, 3.1 );\n* // returns NaN\n*/\nfunction boxcox1pinv( y, lambda ) {\n\tvar ly;\n\tif ( isnan( y ) || isnan( lambda ) ) {\n\t\treturn NaN;\n\t}\n\tif ( lambda === 0.0 ) {\n\t\treturn expm1( y );\n\t}\n\tly = lambda * y;\n\tif ( abs( ly ) < 1.0e-154 ) {\n\t\treturn y;\n\t}\n\treturn expm1( log1p( ly ) / lambda );\n}\n\n\n// EXPORTS //\n\nexport default boxcox1pinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exp from './../../../../base/special/exp';\nimport log1p from './../../../../base/special/log1p';\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Computes the inverse of a one-parameter Box-Cox transformation.\n*\n* @param {number} y - input value\n* @param {number} lambda - power parameter\n* @returns {number} inverse of the Box-Cox transformation\n*\n* @example\n* var v = boxcoxinv( 1.0, 2.5 );\n* // returns ~1.6505\n*\n* @example\n* var v = boxcoxinv( 4.0, 2.5 );\n* // returns ~2.6095\n*\n* @example\n* var v = boxcoxinv( 10.0, 2.5 );\n* // returns ~3.6812\n*\n* @example\n* var v = boxcoxinv( 2.0, 0.0 );\n* // returns ~7.3891\n*\n* @example\n* var v = boxcoxinv( -1.0, 2.5 );\n* // returns NaN\n*\n* @example\n* var v = boxcoxinv( 0.0, -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = boxcoxinv( 1.0, NaN );\n* // returns NaN\n*\n* @example\n* var v = boxcoxinv( NaN, 3.1 );\n* // returns NaN\n*/\nfunction boxcoxinv( y, lambda ) {\n\tif ( isnan( y ) || isnan( lambda ) ) {\n\t\treturn NaN;\n\t}\n\tif ( lambda === 0.0 ) {\n\t\treturn exp( y );\n\t}\n\treturn exp( log1p( lambda*y ) / lambda );\n}\n\n\n// EXPORTS //\n\nexport default boxcoxinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value of a double-precision complex floating-point number.\n*\n* ## Notes\n*\n* - Be careful of overflow and underflow.\n*\n* @param {Complex128} z - complex number\n* @returns {number} squared absolute value\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n*\n* var v = cabs2( new Complex128( 5.0, 3.0 ) );\n* // returns 34.0\n*/\nfunction cabs2( z ) {\n\tvar re = real( z );\n\tvar im = imag( z );\n\treturn (re*re) + (im*im);\n}\n\n\n// EXPORTS //\n\nexport default cabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport real from '@stdlib/complex/float32/real';\nimport imag from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value of a single-precision complex floating-point number.\n*\n* ## Notes\n*\n* - Be careful of overflow and underflow.\n*\n* @param {Complex64} z - complex number\n* @returns {number} squared absolute value\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var v = cabs2f( new Complex64( 5.0, 3.0 ) );\n* // returns 34.0\n*/\nfunction cabs2f( z ) {\n\tvar re = real( z );\n\tvar im = imag( z );\n\treturn (re*re) + (im*im);\n}\n\n\n// EXPORTS //\n\nexport default cabs2f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hypotf from './../../../../base/special/hypotf';\nimport real from '@stdlib/complex/float32/real';\nimport imag from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value of a single-precision complex floating-point number.\n*\n* @param {Complex64} z - complex number\n* @returns {number} absolute value\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n*\n* var v = cabsf( new Complex64( 5.0, 3.0 ) );\n* // returns ~5.83\n*/\nfunction cabsf( z ) {\n\t// TODO: consider whether to use C99 rules for special cases involving infinities and nans (see https://github.com/python/cpython/blob/f4c03484da59049eb62a9bf7777b963e2267d187/Objects/complexobject.c#L191)\n\treturn hypotf( real( z ), imag( z ) );\n}\n\n\n// EXPORTS //\n\nexport default cabsf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport ceil from './../../../../base/special/ceil';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds a complex number toward positive infinity.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cceil( new Complex128( -1.5, 2.5 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -1.0\n*\n* var im = imag( v );\n* // returns 3.0\n*/\nfunction cceil( z ) {\n\treturn new Complex128( ceil( real( z ) ), ceil( imag( z ) ) );\n}\n\n\n// EXPORTS //\n\nexport default cceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport ceilf from './../../../../base/special/ceilf';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Rounds a complex number toward positive infinity.\n*\n* @param {Complex64} z - complex number\n* @returns {Complex64} result\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var v = cceilf( new Complex64( -1.5, 2.5 ) );\n* // returns \n*\n* var re = realf( v );\n* // returns -1.0\n*\n* var im = imagf( v );\n* // returns 3.0\n*/\nfunction cceilf( z ) {\n\treturn new Complex64( ceilf( realf( z ) ), ceilf( imagf( z ) ) );\n}\n\n\n// EXPORTS //\n\nexport default cceilf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ceiln from './../../../../base/special/ceiln';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds each component of a double-precision complex floating-point number to the nearest multiple of `10^n` toward positive infinity.\n*\n* @param {Complex128} z - complex number\n* @param {integer} n - integer power of 10\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* // Round components to 2 decimal places:\n* var z = new Complex128( -3.141592653589793, 3.141592653589793 )\n* var v = cceiln( z, -2 );\n* // returns \n*\n* var re = real( v );\n* // returns -3.14\n*\n* var im = imag( v );\n* // returns 3.15\n*\n* // If n = 0, `cceiln` behaves like `cceil`:\n* z = new Complex128( 9.99999, 0.1 )\n* v = cceiln( z, 0 );\n* // returns \n*\n* re = real( v );\n* // returns 10.0\n*\n* im = imag( v );\n* // returns 1.0\n*\n* // Round components to the nearest thousand:\n* z = new Complex128( 12368.0, -12368.0 )\n* v = cceiln( z, 3 );\n* // returns \n*\n* re = real( v );\n* // returns 13000.0\n*\n* im = imag( v );\n* // returns -12000.0\n*\n* v = cceiln( new Complex128( NaN, NaN ), 2 );\n* // returns \n*\n* re = real( v );\n* // returns NaN\n*\n* im = imag( v );\n* // returns NaN\n*/\nfunction cceiln( z, n ) {\n\treturn new Complex128( ceiln( real( z ), n ), ceiln( imag( z ), n ) );\n}\n\n\n// EXPORTS //\n\nexport default cceiln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport ceil from './../../../../base/special/ceil';\nimport ceiln from './../../../../base/special/ceiln';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(b^n\\\\) toward positive infinity.\n*\n* @param {number} x - input value\n* @param {integer} n - integer power\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 4 decimal places:\n* var v = ceilb( 3.141592653589793, -4, 10 );\n* // returns 3.1416\n*\n* @example\n* // If n = 0 or b = 1, `ceilb` behaves like `ceil`:\n* var v = ceilb( 3.141592653589793, 0, 2 );\n* // returns 4.0\n*\n* @example\n* // Round a value to the nearest multiple of two toward positive infinity:\n* var v = ceilb( 5.0, 1, 2 );\n* // returns 6.0\n*/\nfunction ceilb( x, n, b ) {\n\tvar y;\n\tvar s;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( n ) ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\treturn ceiln( x, n );\n\t}\n\tif ( n === 0 || b === 1 ) {\n\t\treturn ceil( x );\n\t}\n\ts = pow( b, -n );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\ty = ceil( x * s ) / s;\n\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default ceilb;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport log10 from './../../../../base/special/log10';\nimport ln from './../../../../base/special/ln';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport exponent from '@stdlib/number/float64/base/exponent';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest number toward positive infinity with \\\\(n\\\\) significant figures.\n*\n* @param {number} x - input value\n* @param {PositiveInteger} n - number of significant figures\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* var v = ceilsd( 3.141592653589793, 5, 10 );\n* // returns 3.1416\n*\n* @example\n* var v = ceilsd( 3.141592653589793, 1, 10 );\n* // returns 4.0\n*\n* @example\n* var v = ceilsd( 12368.0, 2, 10 );\n* // returns 13000.0\n*\n* @example\n* var v = ceilsd( 0.0313, 2, 2 );\n* // returns 0.046875\n*/\nfunction ceilsd( x, n, b ) {\n\tvar exp;\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tn < 1 ||\n\t\tisInfinite( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\texp = log10( abs( x ) );\n\t}\n\telse if ( b === 2 ) {\n\t\texp = exponent( abs( x ) );\n\t}\n\telse {\n\t\texp = ln( abs(x) ) / ln( b );\n\t}\n\texp = floor( exp - n + 1.0 );\n\ts = pow( b, abs( exp ) );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\t// To avoid numerical stability issues due to floating-point rounding error (e.g., 3.55/0.1-35.5 = -7.105427357601e-15 and 3.55*10-35.5 = 0), we must treat positive and negative exponents separately.\n\tif ( exp < 0 ) {\n\t\ty = ceil( x * s ) / s;\n\t} else {\n\t\ty = ceil( x / s ) * s;\n\t}\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default ceilsd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport copysign from './../../../../base/special/copysign';\nimport sincos from './../../../../base/special/sincos';\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport exp from './../../../../base/special/exp';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Evaluates the exponential function for a double-precision complex floating-point number.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cexp from '@stdlib/math/base/special/cexp';\n*\n* var v = cexp( new Complex128( 0.0, 0.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns 1.0\n*\n* var im = imag( v );\n* // returns 0.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n* import cexp from '@stdlib/math/base/special/cexp';\n*\n* var v = cexp( new Complex128( 1.0, 0.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns ~2.718\n*\n* var im = imag( v );\n* // returns 0.0\n*/\nfunction cexp( z ) {\n\tvar out;\n\tvar im;\n\tvar re;\n\tvar e;\n\n\tre = real( z );\n\tim = imag( z );\n\n\tif ( isnan( re ) ) {\n\t\tre = NaN;\n\t\tim = ( im === 0.0 ) ? im : re;\n\t} else if ( isInfinite( im ) ) {\n\t\tif ( re === PINF ) {\n\t\t\tre = -re;\n\t\t\tim = NaN;\n\t\t} else if ( re === NINF ) {\n\t\t\tre = -0.0;\n\t\t\tim = copysign( 0.0, im );\n\t\t} else {\n\t\t\tre = NaN;\n\t\t\tim = NaN;\n\t\t}\n\t} else {\n\t\te = exp( re );\n\t\tif ( im === 0.0 ) {\n\t\t\tre = e;\n\t\t} else {\n\t\t\tout = sincos( im );\n\t\t\tre = out[ 1 ] * e;\n\t\t\tim = out[ 0 ] * e;\n\t\t}\n\t}\n\treturn new Complex128( re, im );\n}\n\n\n// EXPORTS //\n\nexport default cexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Returns a double-precision complex floating-point number with the same magnitude as `z` and the sign of `y*z`.\n*\n* @param {Complex128} z - complex number\n* @param {number} y - number from which to derive the sign\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cflipsign( new Complex128( -4.2, 5.5 ), -55.0 );\n* // returns \n*\n* var re = real( v );\n* // returns 4.2\n*\n* var im = imag( v );\n* // returns -5.5\n*/\nfunction cflipsign( z, y ) {\n\tvar re = real( z );\n\tvar im = imag( z );\n\tif ( y < 0 || isNegativeZero( y ) ) {\n\t\tre = -re;\n\t\tim = -im;\n\t}\n\treturn new Complex128( re, im );\n}\n\n\n// EXPORTS //\n\nexport default cflipsign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64 from '@stdlib/complex/float32/ctor';\nimport isNegativeZerof from './../../../../base/assert/is-negative-zerof';\nimport realf from '@stdlib/complex/float32/real';\nimport imagf from '@stdlib/complex/float32/imag';\n\n\n// MAIN //\n\n/**\n* Returns a single-precision complex floating-point number with the same magnitude as `z` and the sign of `y*z`.\n*\n* @param {Complex64} z - complex number\n* @param {number} y - number from which to derive the sign\n* @returns {Complex64} result\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import realf from '@stdlib/complex/float32/real';\n* import imagf from '@stdlib/complex/float32/imag';\n*\n* var v = cflipsignf( new Complex64( -4.0, 5.0 ), -55.0 );\n* // returns \n*\n* var re = realf( v );\n* // returns 4.0\n*\n* var im = imagf( v );\n* // returns -5.0\n*/\nfunction cflipsignf( z, y ) {\n\tvar re = realf( z );\n\tvar im = imagf( z );\n\tif ( y < 0 || isNegativeZerof( y ) ) {\n\t\tre = -re;\n\t\tim = -im;\n\t}\n\treturn new Complex64( re, im );\n}\n\n\n// EXPORTS //\n\nexport default cflipsignf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport floor from './../../../../base/special/floor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point complex number toward negative infinity.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cfloor( new Complex128( -4.2, 5.5 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -5.0\n*\n* var im = imag( v );\n* // returns 5.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cfloor( new Complex128( 9.99999, 0.1 ) );\n* // returns \n*\n* var re = real( v );\n* // returns 9.0\n*\n* var im = imag( v );\n* // returns 0.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cfloor( new Complex128( 0.0, 0.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns 0.0\n*\n* var im = imag( v );\n* // returns 0.0\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cfloor( new Complex128( NaN, NaN ) );\n* // returns \n*\n* var re = real( v );\n* // returns NaN\n*\n* var im = imag( v );\n* // returns NaN\n*/\nfunction cfloor( z ) {\n\treturn new Complex128( floor( real( z ) ), floor( imag( z ) ) );\n}\n\n\n// EXPORTS //\n\nexport default cfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floorn from './../../../../base/special/floorn';\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds each component of a double-precision complex floating-point number to the nearest multiple of `10^n` toward negative infinity.\n*\n* @param {Complex128} z - complex number\n* @param {integer} n - integer power of 10\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* // Round components to 2 decimal places:\n* var v = cfloorn( new Complex128( -3.141592653589793, 3.141592653589793 ), -2 );\n* // returns \n*\n* var re = real( v );\n* // returns -3.15\n*\n* var im = imag( v );\n* // returns 3.14\n*\n* // If n = 0, `cfloorn` behaves like `cfloor`:\n* v = cfloorn( new Complex128( 9.99999, 0.1 ), 0 );\n* // returns \n*\n* re = real( v );\n* // returns 9.0\n*\n* im = imag( v );\n* // returns 0.0\n*\n* // Round components to the nearest thousand:\n* v = cfloorn( new Complex128( 12368.0, -12368.0 ), 2 );\n* // returns \n*\n* re = real( v );\n* // returns 12300\n*\n* im = imag( v );\n* // returns -12400\n*\n* v = cfloorn( new Complex128( NaN, NaN ), 2 );\n* // returns \n*\n* re = real( v );\n* // returns NaN\n*\n* im = imag( v );\n* // returns NaN\n*/\nfunction cfloorn( z, n ) {\n\treturn new Complex128( floorn( real( z ), n ), floorn( imag( z ), n ) );\n}\n\n\n// EXPORTS //\n\nexport default cfloorn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates the identity function for a double-precision complex floating-point number.\n*\n* @param {Complex128} z - input value\n* @returns {Complex128} input value\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cidentity( new Complex128( -1.0, 2.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -1.0\n*\n* var im = imag( v );\n* // returns 2.0\n*/\nfunction cidentity( z ) {\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default cidentity;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Evaluates the identity function for a single-precision complex floating-point number.\n*\n* @param {Complex64} z - input value\n* @returns {Complex64} input value\n*\n* @example\n* import Complex64 from '@stdlib/complex/float32/ctor';\n* import real from '@stdlib/complex/float32/real';\n* import imag from '@stdlib/complex/float32/imag';\n*\n* var v = cidentityf( new Complex64( -1.0, 2.0 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -1.0\n*\n* var im = imag( v );\n* // returns 2.0\n*/\nfunction cidentityf( z ) {\n\treturn z;\n}\n\n\n// EXPORTS //\n\nexport default cidentityf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isNegativeZero from './../../../../base/assert/is-negative-zero';\n\n\n// MAIN //\n\n/**\n* Restricts a double-precision floating-point number to a specified range.\n*\n* @param {number} v - input value\n* @param {number} min - minimum value\n* @param {number} max - maximum value\n* @returns {number} value restricted to a specified range\n*\n* @example\n* var v = clamp( 3.14, 0.0, 5.0 );\n* // returns 3.14\n*\n* v = clamp( -3.14, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = clamp( 10.0, 0.0, 5.0 );\n* // returns 5.0\n*\n* v = clamp( -0.0, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = clamp( 0.0, -0.0, 5.0 );\n* // returns 0.0\n*\n* v = clamp( NaN, 0.0, 5.0 );\n* // returns NaN\n*\n* v = clamp( 0.0, NaN, 5.0 );\n* // returns NaN\n*\n* v = clamp( 3.14, 0.0, NaN );\n* // returns NaN\n*/\nfunction clamp( v, min, max ) {\n\tif (\n\t\tisnan( v ) ||\n\t\tisnan( min ) ||\n\t\tisnan( max )\n\t) {\n\t\treturn NaN;\n\t}\n\t// Simple cases...\n\tif ( v < min ) {\n\t\treturn min;\n\t}\n\tif ( v > max ) {\n\t\treturn max;\n\t}\n\t// Special cases for handling +-0.0...\n\tif ( min === 0.0 && isNegativeZero( v ) ) {\n\t\treturn min; // +-0.0\n\t}\n\tif ( v === 0.0 && isNegativeZero( max ) ) {\n\t\treturn max; // -0.0\n\t}\n\t// Case: min <= v <= max\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default clamp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\nimport isNegativeZerof from './../../../../base/assert/is-negative-zerof';\n\n\n// MAIN //\n\n/**\n* Restricts a single-precision floating-point number to a specified range.\n*\n* @param {number} v - input value\n* @param {number} min - minimum value\n* @param {number} max - maximum value\n* @returns {number} value restricted to a specified range\n*\n* @example\n* var v = clampf( 3.0, 0.0, 5.0 );\n* // returns 3.0\n*\n* v = clampf( -3.0, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = clampf( 10.0, 0.0, 5.0 );\n* // returns 5.0\n*\n* v = clampf( -0.0, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = clampf( 0.0, -0.0, 5.0 );\n* // returns 0.0\n*\n* v = clampf( NaN, 0.0, 5.0 );\n* // returns NaN\n*\n* v = clampf( 0.0, NaN, 5.0 );\n* // returns NaN\n*\n* v = clampf( 3.14, 0.0, NaN );\n* // returns NaN\n*/\nfunction clampf( v, min, max ) {\n\tif (\n\t\tisnanf( v ) ||\n\t\tisnanf( min ) ||\n\t\tisnanf( max )\n\t) {\n\t\treturn NaN;\n\t}\n\t// Simple cases...\n\tif ( v < min ) {\n\t\treturn min;\n\t}\n\tif ( v > max ) {\n\t\treturn max;\n\t}\n\t// Special cases for handling +-0.0...\n\tif ( min === 0.0 && isNegativeZerof( v ) ) {\n\t\treturn min; // +-0.0\n\t}\n\tif ( v === 0.0 && isNegativeZerof( max ) ) {\n\t\treturn max; // -0.0\n\t}\n\t// Case: min <= v <= max\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default clampf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport SIGN_MASK from '@stdlib/constants/float32/sign-mask';\nimport ABS_MASK from '@stdlib/constants/float32/abs-mask';\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport toWord from '@stdlib/number/float32/base/to-word';\nimport fromWord from '@stdlib/number/float32/base/from-word';\n\n\n// MAIN //\n\n/**\n* Returns a single-precision floating-point number with the magnitude of `x` and the sign of `y`.\n*\n* @param {number} x - number from which to derive a magnitude\n* @param {number} y - number from which to derive a sign\n* @returns {number} a single-precision floating-point number\n*\n* @example\n* var z = copysignf( -3.0, 10.0 );\n* // returns 3.0\n*\n* @example\n* var z = copysignf( 3.0, -1.0 );\n* // returns -3.0\n*\n* @example\n* var z = copysignf( 1.0, -0.0 );\n* // returns -1.0\n*\n* @example\n* var z = copysignf( -3.0, -0.0 );\n* // returns -3.0\n*\n* @example\n* var z = copysignf( -0.0, 1.0 );\n* // returns 0.0\n*/\nfunction copysignf( x, y ) {\n\tvar wx;\n\tvar wy;\n\n\tx = float64ToFloat32( x );\n\ty = float64ToFloat32( y );\n\n\t// Convert `x` to an unsigned integer:\n\twx = toWord( x );\n\n\t// Turn off the sign bit of `x`:\n\twx &= ABS_MASK;\n\n\t// Convert `y` to an unsigned integer:\n\twy = toWord( y );\n\n\t// Leave only the sign bit of `y` turned on:\n\twy &= SIGN_MASK;\n\n\t// Copy the sign bit of `y` to `x`:\n\twx |= wy;\n\n\t// Return a new value having the same magnitude as `x`, but with the sign of `y`:\n\treturn fromWord( wx );\n}\n\n\n// EXPORTS //\n\nexport default copysignf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\nimport deg2rad from './../../../../base/special/deg2rad';\nimport isInteger from './../../../../base/assert/is-integer';\nimport isInfinite from '@stdlib/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Computes the cosine of an angle measured in degrees.\n*\n* @param {number} x - input value (in degrees)\n* @returns {number} cosine\n*\n* @example\n* var v = cosd( 0.0 );\n* // returns 1.0\n*\n* @example\n* var v = cosd( 90.0 );\n* // returns 0.0\n*\n* @example\n* var v = cosd( 60.0 );\n* // returns ~0.5\n*\n* @example\n* var v = cosd( NaN );\n* // returns NaN\n*/\nfunction cosd( x ) {\n\tvar xRad;\n\n\tif ( isInfinite( x ) ) {\n\t\treturn NaN;\n\t}\n\n\tif ( isInteger( ( ( x / 90.0 ) - 1.0 ) / 2.0 ) ) {\n\t\treturn 0.0;\n\t}\n\n\txRad = deg2rad( x );\n\n\treturn cos( xRad );\n}\n\n\n// EXPORTS //\n\nexport default cosd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cot from './../../../../base/special/cot';\nimport isInteger from './../../../../base/assert/is-integer';\nimport deg2rad from './../../../../base/special/deg2rad';\nimport isInfinite from '@stdlib/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Computes the cotangent of an angle measured in degrees.\n*\n* @param {number} x - input value (in degrees)\n* @returns {number} cotangent\n*\n* @example\n* var v = cotd( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = cotd( 45 );\n* // returns 1.0\n*\n* @example\n* var v = cotd( 90 );\n* // returns 0.0\n*\n* @example\n* var v = cotd( 60 );\n* // returns ~0.58\n*\n* @example\n* var v = cotd( NaN );\n* // returns NaN\n*/\nfunction cotd( x ) {\n\tvar xRad;\n\n\tif ( isInfinite( x ) ) {\n\t\treturn NaN;\n\t}\n\n\tif ( isInteger( ( ( x / 90.0 ) - 1.0 ) / 2.0 ) ) {\n\t\treturn 0.0;\n\t}\n\n\txRad = deg2rad( x );\n\n\treturn cot( xRad );\n}\n\n\n// EXPORTS //\n\nexport default cotd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport tanh from './../../../../base/special/tanh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic cotangent of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic cotangent\n*\n* @example\n* var v = coth( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = coth( 2.0 );\n* // returns ~1.0373\n*\n* @example\n* var v = coth( -2.0 );\n* // returns ~-1.0373\n*\n* @example\n* var v = coth( NaN );\n* // returns NaN\n*/\nfunction coth( x ) {\n\treturn 1.0 / tanh( x );\n}\n\n\n// EXPORTS //\n\nexport default coth;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport round from './../../../../base/special/round';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds each component of a double-precision complex floating-point number to the nearest integer.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} rounded complex number\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = cround( new Complex128( -4.2, 5.5 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -4\n*\n* var im = imag( v );\n* // returns 6.0\n*\n* v = cround( new Complex128( 9.99999, 0.1 ) );\n* // returns \n*\n* re = real( v );\n* // returns 10.0\n*\n* im = imag( v );\n* // returns 0.0\n*\n* v = cround( new Complex128( 0.0, 0.0 ) );\n* // returns \n*\n* re = real( v );\n* // returns 0.0\n*\n* im = imag( v );\n* // returns 0.0\n*\n* v = cround( new Complex128( NaN, NaN ) );\n* // returns \n*\n* re = real( v );\n* // returns NaN\n*\n* im = imag( v );\n* // returns NaN\n*/\nfunction cround( z ) {\n\treturn new Complex128( round( real( z ) ), round( imag( z ) ) );\n}\n\n\n// EXPORTS //\n\nexport default cround;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport roundn from './../../../../base/special/roundn';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\n\n\n// MAIN //\n\n/**\n* Rounds each component of a double-precision complex floating-point number to the nearest multiple of `10^n`.\n*\n* @param {Complex128} z - complex number\n* @param {integer} n - integer power of 10\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = croundn( new Complex128( -3.141592653589793, 3.141592653589793 ), -2 );\n* // returns \n*\n* var re = real( v );\n* // returns -3.14\n*\n* var im = imag( v );\n* // returns 3.14\n*\n* // If n = 0, `croundn` behaves like `cround`:\n* v = croundn( new Complex128( 9.99999, 0.1 ), 0 );\n* // returns \n*\n* re = real( v );\n* // returns 10.0\n*\n* im = imag( v );\n* // returns 0.0\n*\n* // Round components to the nearest thousand:\n* v = croundn( new Complex128( 12368.0, -12368.0 ), 3 );\n* // returns \n*\n* re = real( v );\n* // returns 12000.0\n*\n* im = imag( v );\n* // returns -12000.0\n*\n* v = croundn( new Complex128( NaN, NaN ), 2 );\n* // returns \n*\n* re = real( v );\n* // returns NaN\n*\n* im = imag( v );\n* // returns NaN\n*/\nfunction croundn( z, n ) {\n\treturn new Complex128( roundn( real( z ), n ), roundn( imag( z ), n ) );\n}\n\n\n// EXPORTS //\n\nexport default croundn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Evaluates the cosecant of a number.\n*\n* @param {number} x - input value (in radians)\n* @returns {number} cosecant\n*\n* @example\n* var v = csc( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = csc( 3.141592653589793/2.0 );\n* // returns 1.0\n*\n* @example\n* var v = csc( -3.141592653589793/6.0 );\n* // returns ~-2.0\n*\n* @example\n* var v = csc( 3.141592653589793/6.0 );\n* // returns ~2.0\n*\n* @example\n* var v = csc( NaN );\n* // returns NaN\n*/\nfunction csc( x ) {\n\treturn 1.0 / sin( x );\n}\n\n\n// EXPORTS //\n\nexport default csc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sin from './../../../../base/special/sin';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Computes the cosecant of a degree.\n*\n* @param {number} x - input value (in degrees)\n* @returns {number} cosecant\n*\n* @example\n* var v = cscd( 30 );\n* // returns ~2.0\n*\n* @example\n* var v = cscd( 45 );\n* // returns ~1.41\n*\n* @example\n* var v = cscd( 60 );\n* // returns ~1.15\n*\n* @example\n* var v = cscd( 90 );\n* // returns 1.0\n*\n* @example\n* var v = cscd( 0 );\n* // returns Infinity\n*\n* @example\n* var v = cscd( NaN );\n* // returns NaN\n*/\nfunction cscd( x ) {\n\tvar rad = deg2rad( x );\n\treturn 1.0 / sin( rad );\n}\n\n\n// EXPORTS //\n\nexport default cscd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sinh from './../../../../base/special/sinh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic cosecant of a number.\n*\n* @param {number} x - input value\n* @returns {number} hyperbolic cosecant\n*\n* @example\n* var v = csch( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = csch( 2.0 );\n* // returns ~0.2757\n*\n* @example\n* var v = csch( -2.0 );\n* // returns ~-0.2757\n*\n* @example\n* var v = csch( NaN );\n* // returns NaN\n*/\nfunction csch( x ) {\n\treturn 1.0 / sinh( x );\n}\n\n\n// EXPORTS //\n\nexport default csch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex/float64/ctor';\nimport real from '@stdlib/complex/float64/real';\nimport imag from '@stdlib/complex/float64/imag';\nimport cabs from './../../../../base/special/cabs';\n\n\n// MAIN //\n\n/**\n* Evaluates the signum function of a double-precision floating-point complex number.\n*\n* @param {Complex128} z - complex number\n* @returns {Complex128} result\n*\n* @example\n* import Complex128 from '@stdlib/complex/float64/ctor';\n* import real from '@stdlib/complex/float64/real';\n* import imag from '@stdlib/complex/float64/imag';\n*\n* var v = csignum( new Complex128( -4.2, 5.5 ) );\n* // returns \n*\n* var re = real( v );\n* // returns -0.6069136033622302\n*\n* var im = imag( v );\n* // returns 0.79476781392673\n*\n* v = csignum( new Complex128( 0.0, 0.0 ) );\n* // returns \n*\n* re = real( v );\n* // returns -0.0\n*\n* im = imag( v );\n* // returns 0.0\n*\n* v = csignum( new Complex128( NaN, NaN ) );\n* // returns \n*\n* re = real( v );\n* // returns NaN\n*\n* im = imag( v );\n* // returns NaN\n*/\nfunction csignum( z ) {\n\tvar re;\n\tvar im;\n\tvar az;\n\n\taz = cabs( z );\n\tif ( az === 0.0 ) {\n\t\treturn z;\n\t}\n\tre = real( z ) / az;\n\tim = imag( z ) / az;\n\treturn new Complex128( re, im );\n}\n\n\n// EXPORTS //\n\nexport default csignum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport isEven from './../../../../base/assert/is-even';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// VARIABLES //\n\nvar MAX_FACTORIAL2 = 301; // TODO: consider extracting as a constant\n\n\n// MAIN //\n\n/**\n* Evaluates the double factorial of `n`.\n*\n* @param {number} n - input value\n* @returns {(NonNegativeInteger|number)} double factorial\n*\n* @example\n* var v = factorial2( 3 );\n* // returns 3\n*\n* @example\n* var v = factorial2( 4 );\n* // returns 8\n*\n* @example\n* var v = factorial2( 5 );\n* // returns 15\n*\n* @example\n* var v = factorial2( 301 );\n* // returns Infinity\n*/\nfunction factorial2( n ) {\n\tvar last;\n\tvar out;\n\tvar v;\n\tvar i;\n\tif ( isnan( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( n >= MAX_FACTORIAL2 ) {\n\t\treturn PINF;\n\t}\n\tif ( n < 0 || isInteger( n ) === false ) {\n\t\treturn NaN;\n\t}\n\tv = n|0; // asm type annotation\n\tif ( v === 0|0 || v === 1|0 ) {\n\t\treturn 1|0; // asm type annotation\n\t}\n\tif ( isEven( v ) ) {\n\t\tlast = 2|0; // asm type annotation\n\t} else {\n\t\tlast = 3|0; // asm type annotation\n\t}\n\tout = 1;\n\tfor ( i = v|0; i >= last; i -= 2|0 ) {\n\t\tout *= i|0; // asm type annotation\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default factorial2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport MAX_FIBONACCI from '@stdlib/constants/float64/max-safe-nth-fibonacci';\nimport FIBONACCI from './fibonacci.json';\n\n\n// MAIN //\n\n/**\n* Computes the nth Fibonacci number.\n*\n* @param {NonNegativeInteger} n - the Fibonacci number to compute\n* @returns {NonNegativeInteger} Fibonacci number\n*\n* @example\n* var y = fibonacci( 0 );\n* // returns 0\n*\n* @example\n* var y = fibonacci( 1 );\n* // returns 1\n*\n* @example\n* var y = fibonacci( 2 );\n* // returns 1\n*\n* @example\n* var y = fibonacci( 3 );\n* // returns 2\n*\n* @example\n* var y = fibonacci( 4 );\n* // returns 3\n*\n* @example\n* var y = fibonacci( 5 );\n* // returns 5\n*\n* @example\n* var y = fibonacci( 6 );\n* // returns 8\n*\n* @example\n* var y = fibonacci( NaN );\n* // returns NaN\n*\n* @example\n* var y = fibonacci( 3.14 );\n* // returns NaN\n*\n* @example\n* var y = fibonacci( -1.0 );\n* // returns NaN\n*/\nfunction fibonacci( n ) {\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn < 0 ||\n\t\tn > MAX_FIBONACCI\n\t) {\n\t\treturn NaN;\n\t}\n\treturn FIBONACCI[ n ];\n}\n\n\n// EXPORTS //\n\nexport default fibonacci;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport SIGN_MASK from '@stdlib/constants/float32/sign-mask';\nimport toWord from '@stdlib/number/float32/base/to-word';\nimport fromWord from '@stdlib/number/float32/base/from-word';\n\n\n// MAIN //\n\n/**\n* Returns a single-precision floating-point number with the magnitude of `x` and the sign of `x*y`.\n*\n* @param {number} x - number from which to derive a magnitude\n* @param {number} y - number from which to derive a sign\n* @returns {number} a single-precision floating-point number\n*\n* @example\n* var z = flipsignf( -3.0, 10.0 );\n* // returns -3.0\n*\n* @example\n* var z = flipsignf( -3.0, -1.0 );\n* // returns 3.0\n*\n* @example\n* var z = flipsignf( 1.0, -0.0 );\n* // returns -1.0\n*\n* @example\n* var z = flipsignf( -3.0, -0.0 );\n* // returns 3.0\n*\n* @example\n* var z = flipsignf( -0.0, 1.0 );\n* // returns -0.0\n*\n* @example\n* var z = flipsignf( 0.0, -1.0 );\n* // returns -0.0\n*/\nfunction flipsignf( x, y ) {\n\tvar wx;\n\tvar wy;\n\n\tx = float64ToFloat32( x );\n\ty = float64ToFloat32( y );\n\n\t// Convert `x` and `y` to unsigned integers:\n\twx = toWord( x );\n\twy = toWord( y );\n\n\t// Leave only the sign bit of `y` turned on (if on):\n\twy &= SIGN_MASK;\n\n\t// Flip the sign bit of `x` only when the sign bit of `y` is on:\n\twx ^= wy; // 1^1=0 (flipped), 0^1=1 (flipped), 1^0=1 (unchanged), 0^0=0 (unchanged)\n\n\t// Return a new value having the same magnitude as `x`, but with the sign of `x*y`:\n\treturn fromWord( wx );\n}\n\n\n// EXPORTS //\n\nexport default flipsignf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport floor from './../../../../base/special/floor';\nimport floorn from './../../../../base/special/floorn';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(b^n\\\\) toward negative infinity.\n*\n* @param {number} x - input value\n* @param {integer} n - integer power\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 4 decimal places:\n* var v = floorb( 3.141592653589793, -4, 10 );\n* // returns 3.1415\n*\n* @example\n* // If n = 0 or b = 1, `floorb` behaves like `floor`:\n* var v = floorb( 3.141592653589793, 0, 2 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest multiple of two toward negative infinity:\n* var v = floorb( 5.0, 1, 2 );\n* // returns 4.0\n*/\nfunction floorb( x, n, b ) {\n\tvar y;\n\tvar s;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( n ) ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\treturn floorn( x, n );\n\t}\n\tif ( n === 0 || b === 1 ) {\n\t\treturn floor( x );\n\t}\n\ts = pow( b, -n );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\ty = floor( x * s ) / s;\n\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default floorb;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport log10 from './../../../../base/special/log10';\nimport ln from './../../../../base/special/ln';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport exponent from '@stdlib/number/float64/base/exponent';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest number toward negative infinity with \\\\(N\\\\) significant figures.\n*\n* @param {number} x - input value\n* @param {PositiveInteger} n - number of significant figures\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* var v = floorsd( 3.141592653589793, 5, 10 );\n* // returns 3.1415\n*\n* @example\n* var v = floorsd( 3.141592653589793, 1, 10 );\n* // returns 3.0\n*\n* @example\n* var v = floorsd( 12368.0, 2, 10 );\n* // returns 12000.0\n*\n* @example\n* var v = floorsd( 0.0313, 2, 2 );\n* // returns 0.03125\n*/\nfunction floorsd( x, n, b ) {\n\tvar exp;\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tn < 1 ||\n\t\tisInfinite( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\texp = log10( abs( x ) );\n\t}\n\telse if ( b === 2 ) {\n\t\texp = exponent( abs( x ) );\n\t}\n\telse {\n\t\texp = ln( abs(x) ) / ln( b );\n\t}\n\texp = floor( exp - n + 1.0 );\n\ts = pow( b, abs( exp ) );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\t// To avoid numerical stability issues due to floating-point rounding error (e.g., 3.55/0.1-35.5 = -7.105427357601e-15 and 3.55*10-35.5 = 0), we must treat positive and negative exponents separately.\n\tif ( exp < 0 ) {\n\t\ty = floor( x * s ) / s;\n\t} else {\n\t\ty = floor( x / s ) * s;\n\t}\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default floorsd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Computes the sign of the gamma function.\n*\n* @param {number} x - input value\n* @returns {number} sign of the gamma function\n*\n* @example\n* var v = gammasgn( 1.0 );\n* // returns 1.0\n*\n* v = gammasgn( -2.5 );\n* // returns -1.0\n*\n* v = gammasgn( 0.0 );\n* // returns 0.0\n*\n* v = gammasgn( NaN );\n* // returns NaN\n*/\nfunction gammasgn( x ) {\n\tvar fx;\n\n\tif ( isnan( x ) ) {\n\t\treturn x;\n\t}\n\tif ( x > 0 ) {\n\t\treturn 1.0;\n\t}\n\tfx = floor( x );\n\tif ( x === fx ) {\n\t\treturn 0.0;\n\t}\n\tfx /= 2.0;\n\tif ( fx === floor( fx ) ) {\n\t\treturn 1.0;\n\t}\n\treturn -1.0;\n}\n\n\n// EXPORTS //\n\nexport default gammasgn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Evaluates the Heaviside function.\n*\n* @param {number} x - input value\n* @param {string} [continuity] - continuity option\n* @returns {number} function value\n*\n* @example\n* var v = heaviside( 3.14 );\n* // returns 1.0\n*\n* @example\n* var v = heaviside( -3.14 );\n* // returns 0.0\n*\n* @example\n* var v = heaviside( 0.0 );\n* // returns NaN\n*\n* @example\n* var v = heaviside( 0.0, 'half-maximum' );\n* // returns 0.5\n*\n* @example\n* var v = heaviside( 0.0, 'left-continuous' );\n* // returns 0.0\n*\n* @example\n* var v = heaviside( 0.0, 'right-continuous' );\n* // returns 1.0\n*\n* @example\n* var v = heaviside( NaN );\n* // returns NaN\n*/\nfunction heaviside( x, continuity ) {\n\tif ( isnan( x ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > 0.0 ) {\n\t\treturn 1.0;\n\t}\n\t// Handle `+-0`...\n\tif ( x === 0.0 ) {\n\t\tif ( continuity === 'half-maximum' ) {\n\t\t\treturn 0.5;\n\t\t}\n\t\tif ( continuity === 'left-continuous' ) {\n\t\t\treturn 0.0;\n\t\t}\n\t\tif ( continuity === 'right-continuous' ) {\n\t\t\treturn 1.0;\n\t\t}\n\t\t// Default behavior is discontinuity...\n\t\treturn NaN;\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default heaviside;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluates the identity function for a single-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} input value\n*\n* @example\n* var v = identityf( -1.0 );\n* // returns -1.0\n*\n* @example\n* var v = identityf( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = identityf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = identityf( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = identityf( NaN );\n* // returns NaN\n*/\nfunction identityf( x ) {\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default identityf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Evaluates the Kronecker delta.\n*\n* @param {number} i - input value\n* @param {number} j - input value\n* @returns {number} function value\n*\n* @example\n* var v = kroneckerDelta( 3.14, 3.14 );\n* // returns 1.0\n*\n* @example\n* var v = kroneckerDelta( 3.14, 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = kroneckerDelta( NaN, 3.14 );\n* // returns NaN\n*\n* @example\n* var v = kroneckerDelta( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = kroneckerDelta( NaN, NaN );\n* // returns NaN\n*/\nfunction kroneckerDelta( i, j ) {\n\tif ( isnan( i ) || isnan( j ) ) {\n\t\treturn NaN;\n\t}\n\tif ( i === j ) {\n\t\treturn 1.0;\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default kroneckerDelta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\n\n\n// MAIN //\n\n/**\n* Evaluates the Kronecker delta (single-precision).\n*\n* @param {number} i - input value\n* @param {number} j - input value\n* @returns {number} function value\n*\n* @example\n* var v = kroneckerDeltaf( 3.14, 3.14 );\n* // returns 1.0\n*\n* @example\n* var v = kroneckerDeltaf( 3.14, 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = kroneckerDeltaf( NaN, 3.14 );\n* // returns NaN\n*\n* @example\n* var v = kroneckerDeltaf( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = kroneckerDeltaf( NaN, NaN );\n* // returns NaN\n*/\nfunction kroneckerDeltaf( i, j ) {\n\tif ( isnanf( i ) || isnanf( j ) ) {\n\t\treturn NaN;\n\t}\n\tif ( i === j ) {\n\t\treturn 1.0;\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default kroneckerDeltaf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport gcd from './../../../../base/special/gcd';\n\n\n// MAIN //\n\n/**\n* Computes the least common multiple (lcm).\n*\n* @param {integer} a - integer\n* @param {integer} b - integer\n* @returns {integer} least common multiple\n*\n* @example\n* var v = lcm( 21, 6 );\n* // returns 42\n*\n* @example\n* var v = lcm( 3.14, 6 );\n* // returns NaN\n*\n* @example\n* var v = lcm( NaN, 6 );\n* // returns NaN\n*/\nfunction lcm( a, b ) {\n\tvar d;\n\tif ( a === 0 || b === 0 ) {\n\t\treturn 0;\n\t}\n\tif ( a < 0 ) {\n\t\ta = -a;\n\t}\n\tif ( b < 0 ) {\n\t\tb = -b;\n\t}\n\t// Note: we rely on `gcd` to perform further argument validation...\n\td = gcd( a, b );\n\tif ( isnan( d ) ) {\n\t\treturn d;\n\t}\n\treturn (a/d) * b;\n}\n\n\n// EXPORTS //\n\nexport default lcm;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport exp from './../../../../base/special/exp';\nimport log1p from './../../../../base/special/log1p';\nimport LN2 from '@stdlib/constants/float64/ln-two';\n\n\n// MAIN //\n\n/**\n* Computes the natural logarithm of \\\\( \\exp(x) + \\exp(y) \\\\).\n*\n* @param {number} x - input value\n* @param {number} y - input value\n* @returns {number} natural logarithm of \\\\( \\exp(x) + \\exp(y) \\\\)\n*\n* @example\n* var v = logaddexp( 90.0, 90.0 );\n* // returns ~90.6931\n*\n* @example\n* var v = logaddexp( -20.0, 90.0 );\n* // returns 90.0\n*\n* @example\n* var v = logaddexp( 0.0, -100 );\n* // returns ~3.7201e-44\n*/\nfunction logaddexp( x, y ) {\n\tvar d;\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === y ) {\n\t\treturn x + LN2;\n\t}\n\td = x - y;\n\tif ( d > 0.0 ) {\n\t\treturn x + log1p( exp( -d ) );\n\t}\n\treturn y + log1p( exp( d ) );\n}\n\n\n// EXPORTS //\n\nexport default logaddexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport MAX_LUCAS from '@stdlib/constants/float64/max-safe-nth-lucas';\nimport LUCAS from './lucas.json';\n\n\n// MAIN //\n\n/**\n* Computes the nth Lucas number.\n*\n* @param {NonNegativeInteger} n - the Lucas number to compute\n* @returns {NonNegativeInteger} Lucas number\n*\n* @example\n* var y = lucas( 0 );\n* // returns 2\n*\n* @example\n* var y = lucas( 1 );\n* // returns 1\n*\n* @example\n* var y = lucas( 2 );\n* // returns 3\n*\n* @example\n* var y = lucas( 3 );\n* // returns 4\n*\n* @example\n* var y = lucas( 4 );\n* // returns 7\n*\n* @example\n* var y = lucas( 5 );\n* // returns 11\n*\n* @example\n* var y = lucas( 6 );\n* // returns 18\n*\n* @example\n* var y = lucas( NaN );\n* // returns NaN\n*\n* @example\n* var y = lucas( 3.14 );\n* // returns NaN\n*\n* @example\n* var y = lucas( -1.0 );\n* // returns NaN\n*/\nfunction lucas( n ) {\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn < 0 ||\n\t\tn > MAX_LUCAS\n\t) {\n\t\treturn NaN;\n\t}\n\treturn LUCAS[ n ];\n}\n\n\n// EXPORTS //\n\nexport default lucas;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport max from './../../../../base/special/maxn';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the maximum absolute value.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {number} maximum absolute value\n*\n* @example\n* var v = maxabsn( 3.14, -4.2 );\n* // returns 4.2\n*\n* @example\n* var v = maxabsn( 5.9, 3.14, 4.2 );\n* // returns 5.9\n*\n* @example\n* var v = maxabsn( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = maxabsn( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction maxabsn( x, y ) {\n\tvar nargs;\n\tvar args;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( nargs === 0 ) {\n\t\treturn PINF;\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn max( abs( x ), abs( y ) );\n\t}\n\targs = [];\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\targs.push( abs( arguments[ i ] ) );\n\t}\n\treturn max.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default maxabsn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport minn from './../../../../base/special/minn';\nimport PINF from '@stdlib/constants/float64/pinf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum absolute value.\n*\n* @param {number} [x] - first number\n* @param {number} [y] - second number\n* @param {...number} [args] - numbers\n* @returns {number} minimum absolute value\n*\n* @example\n* var v = minabsn( -3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = minabsn( 5.9, 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = minabsn( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = minabsn( +0.0, -0.0 );\n* // returns +0.0\n*/\nfunction minabsn( x, y ) {\n\tvar nargs;\n\tvar args;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( nargs === 0 ) {\n\t\treturn PINF;\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn minn( abs( x ), abs( y ) );\n\t}\n\targs = [];\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\targs.push( abs( arguments[ i ] ) );\n\t}\n\treturn minn.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default minabsn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport abs from './../../../../base/special/abs';\nimport MAX_FIBONACCI from '@stdlib/constants/float64/max-safe-nth-fibonacci';\nimport NEGAFIBONACCI from './negafibonacci.json';\n\n\n// MAIN //\n\n/**\n* Computes the nth negaFibonacci number.\n*\n* @param {NonPositiveInteger} n - the negaFibonacci number to compute\n* @returns {integer} negaFibonacci number\n*\n* @example\n* var y = negafibonacci( 0 );\n* // returns 0\n*\n* @example\n* var y = negafibonacci( -1 );\n* // returns 1\n*\n* @example\n* var y = negafibonacci( -2 );\n* // returns -1\n*\n* @example\n* var y = negafibonacci( -3 );\n* // returns 2\n*\n* @example\n* var y = negafibonacci( -4 );\n* // returns -3\n*\n* @example\n* var y = negafibonacci( -5 );\n* // returns 5\n*\n* @example\n* var y = negafibonacci( -6 );\n* // returns -8\n*\n* @example\n* var y = negafibonacci( NaN );\n* // returns NaN\n*\n* @example\n* var y = negafibonacci( -3.14 );\n* // returns NaN\n*/\nfunction negafibonacci( n ) {\n\tvar an;\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn > 0\n\t) {\n\t\treturn NaN;\n\t}\n\tan = abs( n );\n\tif ( an > MAX_FIBONACCI ) {\n\t\treturn NaN;\n\t}\n\treturn NEGAFIBONACCI[ an ];\n}\n\n\n// EXPORTS //\n\nexport default negafibonacci;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport abs from './../../../../base/special/abs';\nimport MAX_LUCAS from '@stdlib/constants/float64/max-safe-nth-lucas';\nimport NEGALUCAS from './negalucas.json';\n\n\n// MAIN //\n\n/**\n* Computes the nth negaLucas number.\n*\n* @param {NonPositiveInteger} n - the negaLucas number to compute\n* @returns {integer} negaLucas number\n*\n* @example\n* var y = negalucas( 0 );\n* // returns 2\n*\n* @example\n* var y = negalucas( -1 );\n* // returns -1\n*\n* @example\n* var y = negalucas( -2 );\n* // returns 3\n*\n* @example\n* var y = negalucas( -3 );\n* // returns -4\n*\n* @example\n* var y = negalucas( -4 );\n* // returns 7\n*\n* @example\n* var y = negalucas( -5 );\n* // returns -11\n*\n* @example\n* var y = negalucas( -6 );\n* // returns 18\n*\n* @example\n* var y = negalucas( NaN );\n* // returns NaN\n*\n* @example\n* var y = negalucas( -3.14 );\n* // returns NaN\n*/\nfunction negalucas( n ) {\n\tvar an;\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn > 0\n\t) {\n\t\treturn NaN;\n\t}\n\tan = abs( n );\n\tif ( an > MAX_LUCAS ) {\n\t\treturn NaN;\n\t}\n\treturn NEGALUCAS[ an ];\n}\n\n\n// EXPORTS //\n\nexport default negalucas;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\n\n\n// MAIN //\n\n/**\n* Returns the positive difference between `x` and `y` if `x > y`; otherwise, returns `0`.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} positive difference\n*\n* @example\n* var v = pdiff( 5.9, 3.14 );\n* // returns 2.76\n*\n* @example\n* var v = pdiff( 3.14, 4.2 );\n* // returns 0.0\n*\n* @example\n* var v = pdiff( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = pdiff( -0.0, +0.0 );\n* // returns +0.0\n*/\nfunction pdiff( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > y ) {\n\t\treturn x - y;\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default pdiff;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport isnanf from './../../../../base/assert/is-nanf';\n\n\n// MAIN //\n\n/**\n* Returns the positive difference between `x` and `y` if `x > y`; otherwise, returns `0`.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} positive difference\n*\n* @example\n* var v = pdifff( 5.9, 3.15 );\n* // returns 2.75\n*\n* @example\n* var v = pdifff( 3.14, 4.2 );\n* // returns 0.0\n*\n* @example\n* var v = pdifff( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = pdifff( -0.0, +0.0 );\n* // returns +0.0\n*/\nfunction pdifff( x, y ) {\n\tif ( isnanf( x ) || isnanf( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x > y ) {\n\t\treturn float64ToFloat32( float64ToFloat32(x) - float64ToFloat32(y) );\n\t}\n\treturn 0.0;\n}\n\n\n// EXPORTS //\n\nexport default pdifff;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Compute the reciprocal cube root of a double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} reciprocal cube root\n*\n* @example\n* var v = rcbrt( 8.0 );\n* // returns 0.5\n*\n* @example\n* var v = rcbrt( 1000.0 );\n* // returns 0.1\n*\n* @example\n* var v = rcbrt( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = rcbrt( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = rcbrt( -8.0 );\n* // returns -0.5\n*\n* @example\n* var v = rcbrt( NaN );\n* // returns NaN\n*/\nfunction rcbrt( x ) {\n\treturn 1.0 / cbrt( x );\n}\n\n\n// EXPORTS //\n\nexport default rcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Compute the reciprocal cube root of a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} reciprocal cube root\n*\n* @example\n* var v = rcbrtf( 8.0 );\n* // returns 0.5\n*\n* @example\n* var v = rcbrtf( 1000.0 );\n* // returns ~0.1\n*\n* @example\n* var v = rcbrtf( 0.0 );\n* // returns Infinity\n*\n* @example\n* var v = rcbrtf( Infinity );\n* // returns 0.0\n*\n* @example\n* var v = rcbrtf( -8.0 );\n* // returns -0.5\n*\n* @example\n* var v = rcbrtf( NaN );\n* // returns NaN\n*/\nfunction rcbrtf( x ) {\n\t// As the cube root is a fundamental numerical operation, compute in extend precision in order to avoid precision loss:\n\treturn float64ToFloat32( 1.0 / cbrt( float64ToFloat32( x ) ) );\n}\n\n\n// EXPORTS //\n\nexport default rcbrtf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*\n*\n* ## Notice\n*\n* The original C++ code and copyright notice are from the [Boost library]{@link http://www.boost.org/doc/libs/1_64_0/boost/math/special_functions/factorials.hpp}. The implementation has been modified for JavaScript.\n*\n* ```text\n* (C) Copyright John Maddock 2006, 2010.\n*\n* Use, modification and distribution are subject to the\n* Boost Software License, Version 1.0. (See accompanying file\n* LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)\n* ```\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from './../../../../base/assert/is-integer';\nimport isnan from './../../../../base/assert/is-nan';\nimport gammaDeltaRatio from './../../../../base/special/gamma-delta-ratio';\nimport fallingFactorial from './../../../../base/special/falling-factorial';\n\n\n// MAIN //\n\n/**\n* Computes the rising factorial of `x` and `n`.\n*\n* ## Notes\n*\n* - The rising factorial is defined as\n*\n* ```tex\n* \\operatorname{risingFactorial}(x, n) = x (x-1) (x-2) (x-3) \\ldots (x-n+1)\n* ```\n*\n* or equivalently\n*\n* ```tex\n* \\operatorname{risingFactorial}(x, n) = \\frac{ \\Gamma(x + n) }{ \\Gamma(x) };\n* ```\n*\n* @param {number} x - first function parameter\n* @param {integer} n - second function parameter\n* @returns {number} function value\n*\n* @example\n* var v = risingFactorial( 0.9, 5 );\n* // returns ~94.766\n*\n* @example\n* var v = risingFactorial( -9.0, 3 );\n* // returns -504.0\n*\n* @example\n* var v = risingFactorial( 0.0, 2 );\n* // returns 0.0\n*\n* @example\n* var v = risingFactorial( 3.0, -2 );\n* // returns 0.5\n*/\nfunction risingFactorial( x, n ) {\n\tvar result;\n\tvar inv;\n\n\tif ( isnan( x ) || !isInteger( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x < 0.0 ) {\n\t\t// For `x < 0`, we really have a falling factorial, modulo a possible change of sign. Note that the falling factorial isn't defined for negative `n`, so we'll get rid of that case first:\n\t\tif ( n < 0.0 ) {\n\t\t\tx += n;\n\t\t\tn = -n;\n\t\t\tinv = true;\n\t\t}\n\t\tresult = ( (n&1) ? -1.0 : 1.0 ) * fallingFactorial( -x, n );\n\t\tif ( inv ) {\n\t\t\tresult = 1.0 / result;\n\t\t}\n\t\treturn result;\n\t}\n\tif ( n === 0 ) {\n\t\treturn 1.0;\n\t}\n\tif ( x === 0.0 ) {\n\t\tif ( n < 0 ) {\n\t\t\treturn -gammaDeltaRatio( x+1.0, -n );\n\t\t}\n\t\treturn 0.0;\n\t}\n\tif ( x < 1.0 && x+n < 0.0 ) {\n\t\tresult = gammaDeltaRatio( 1.0-x, -n );\n\t\treturn ( n&1 ) ? -result : result;\n\t}\n\t// We don't optimize this for small `n`, because `gammaDeltaRatio` is already optimized for that use case:\n\treturn 1.0 / gammaDeltaRatio( x, n );\n}\n\n\n// EXPORTS //\n\nexport default risingFactorial;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport round from './../../../../base/special/round';\nimport roundn from './../../../../base/special/roundn';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(b^n\\\\) on a linear scale.\n*\n* @param {number} x - input value\n* @param {integer} n - integer power\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 2 decimal places:\n* var v = roundb( 3.141592653589793, -2, 10 );\n* // returns 3.14\n*\n* @example\n* // If n = 0 or b = 1, `roundb` behaves like `round`:\n* var v = roundb( 3.141592653589793, 0, 2 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest multiple of two:\n* var v = roundb( 5.0, 1, 2 );\n* // returns 6.0\n*/\nfunction roundb( x, n, b ) {\n\tvar y;\n\tvar s;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( n ) ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\treturn roundn( x, n );\n\t}\n\tif ( n === 0 || b === 1 ) {\n\t\treturn round( x );\n\t}\n\ts = pow( b, -n );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\ty = round( x * s ) / s;\n\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default roundb;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport log10 from './../../../../base/special/log10';\nimport ln from './../../../../base/special/ln';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport exponent from '@stdlib/number/float64/base/exponent';\nimport round from './../../../../base/special/round';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest number with \\\\(n\\\\) significant figures.\n*\n* @param {number} x - input value\n* @param {PositiveInteger} n - number of significant figures\n* @param {PositiveInteger} [b=10] - base\n* @returns {number} rounded value\n*\n* @example\n* var v = roundsd( 3.141592653589793, 3 );\n* // returns 3.14\n*\n* @example\n* var v = roundsd( 3.141592653589793, 1 );\n* // returns 3.0\n*\n* @example\n* var v = roundsd( 12368.0, 2 );\n* // returns 12000.0\n*\n* @example\n* var v = roundsd( 0.0313, 2, 2 );\n* // returns 0.03125\n*/\nfunction roundsd( x, n, b ) {\n\tvar base;\n\tvar exp;\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tn < 1 ||\n\t\tisInfinite( n )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tif (\n\t\t\tisnan( b ) ||\n\t\t\tb <= 0 ||\n\t\t\tisInfinite( b )\n\t\t) {\n\t\t\treturn NaN;\n\t\t}\n\t\tbase = b;\n\t} else {\n\t\tbase = 10;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( base === 10 ) {\n\t\texp = log10( abs( x ) );\n\t}\n\telse if ( base === 2 ) {\n\t\texp = exponent( abs( x ) );\n\t}\n\telse {\n\t\texp = ln( abs(x) ) / ln( base );\n\t}\n\texp = floor( exp - n + 1.0 );\n\ts = pow( base, abs( exp ) );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\t// To avoid numerical stability issues due to floating-point rounding error (e.g., 3.55/0.1-35.5 = -7.105427357601e-15 and 3.55*10-35.5 = 0), we must treat positive and negative exponents separately.\n\tif ( exp < 0 ) {\n\t\ty = round( x * s ) / s;\n\t} else {\n\t\ty = round( x / s ) * s;\n\t}\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default roundsd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport cos from './../../../../base/special/cos';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Computes the secant of an angle measured in degrees.\n*\n* @param {number} x - input value (in degrees)\n* @returns {number} secant\n*\n* @example\n* var v = secd( 30 );\n* // returns ~1.15\n*\n* @example\n* var v = secd( 45 );\n* // returns ~1.41\n*\n* @example\n* var v = secd( 60 );\n* // returns ~2.0\n*\n* @example\n* var v = secd( 90 );\n* // returns 16331239353195370.0\n*\n* @example\n* var v = secd( 0 );\n* // returns 1.0\n*\n* @example\n* var v = secd( NaN );\n* // returns NaN\n*/\nfunction secd( x ) {\n\tvar rad = deg2rad( x );\n\treturn 1.0 / cos( rad );\n}\n\n\n// EXPORTS //\n\nexport default secd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnanf from './../../../../base/assert/is-nanf';\n\n\n// MAIN //\n\n/**\n* Evaluates the signum function for a single-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} function value\n*\n* @example\n* var sign = signumf( -5.0 );\n* // returns -1.0\n*\n* @example\n* var sign = signumf( 5.0 );\n* // returns 1.0\n*\n* @example\n* var sign = signumf( -0.0 );\n* // returns -0.0\n*\n* @example\n* var sign = signumf( 0.0 );\n* // returns 0.0\n*\n* @example\n* var sign = signumf( NaN );\n* // returns NaN\n*/\nfunction signumf( x ) {\n\tif ( x === 0.0 || isnanf( x ) ) {\n\t\treturn x; // addresses both +-0\n\t}\n\treturn ( x < 0.0 ) ? -1.0 : 1.0;\n}\n\n\n// EXPORTS //\n\nexport default signumf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport PI from '@stdlib/constants/float64/pi';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root of the product of 𝛑 and a positive double-precision floating-point number.\n*\n* @param {number} x - input value\n* @returns {number} result\n*\n* @example\n* var v = sqrtpi( 4.0 );\n* // returns ~3.5449\n*\n* v = sqrtpi( 10.0 );\n* // returns ~5.60499\n*\n* v = sqrtpi( 0.0 );\n* // returns 0.0\n*\n* v = sqrtpi( -4.0 );\n* // returns NaN\n*\n* v = sqrtpi( NaN );\n* // returns NaN\n*/\nfunction sqrtpi( x ) {\n\treturn sqrt( x * PI );\n}\n\n\n// EXPORTS //\n\nexport default sqrtpi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport tan from './../../../../base/special/tan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport deg2rad from './../../../../base/special/deg2rad';\nimport isInfinite from '@stdlib/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Computes the tangent of an angle measured in degrees.\n*\n* @param {number} x - input value (in degrees)\n* @returns {number} tangent\n*\n* @example\n* var v = tand( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = tand( 90.0 );\n* // returns Infinity\n*\n* @example\n* var v = tand( 60.0 );\n* // returns ~1.732\n*\n* @example\n* var v = tand( NaN );\n* // returns NaN\n*/\nfunction tand( x ) {\n\tvar xRad;\n\n\tif ( isInfinite( x ) ) {\n\t\treturn NaN;\n\t}\n\n\tif ( isInteger( ( ( x / 90.0 ) - 1.0 ) / 2.0 ) ) {\n\t\treturn Infinity;\n\t}\n\n\tif ( isInteger( ( x / 90.0 ) / 2.0 ) ) {\n\t\treturn 0.0;\n\t}\n\n\txRad = deg2rad( x );\n\n\treturn tan( xRad );\n}\n\n\n// EXPORTS //\n\nexport default tand;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInteger from './../../../../base/assert/is-integer';\nimport TRIBONACCI from './tribonacci.json';\n\n\n// VARIABLES //\n\nvar MAX_TRIBONACCI = 63;\n\n\n// MAIN //\n\n/**\n* Computes the nth Tribonacci number.\n*\n* @param {NonNegativeInteger} n - the Tribonacci number to compute\n* @returns {NonNegativeInteger} Tribonacci number\n*\n* @example\n* var y = tribonacci( 0 );\n* // returns 0\n*\n* @example\n* var y = tribonacci( 1 );\n* // returns 0\n*\n* @example\n* var y = tribonacci( 2 );\n* // returns 1\n*\n* @example\n* var y = tribonacci( 3 );\n* // returns 1\n*\n* @example\n* var y = tribonacci( 4 );\n* // returns 2\n*\n* @example\n* var y = tribonacci( 5 );\n* // returns 4\n*\n* @example\n* var y = tribonacci( 6 );\n* // returns 7\n*\n* @example\n* var y = tribonacci( NaN );\n* // returns NaN\n*\n* @example\n* var y = tribonacci( 3.14 );\n* // returns NaN\n*\n* @example\n* var y = tribonacci( -1.0 );\n* // returns NaN\n*/\nfunction tribonacci( n ) {\n\tif (\n\t\tisnan( n ) ||\n\t\tisInteger( n ) === false ||\n\t\tn < 0 ||\n\t\tn > MAX_TRIBONACCI\n\t) {\n\t\treturn NaN;\n\t}\n\treturn TRIBONACCI[ n ];\n}\n\n\n// EXPORTS //\n\nexport default tribonacci;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport trunc from './../../../../base/special/trunc';\nimport truncn from './../../../../base/special/truncn';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest multiple of \\\\(b^n\\\\) toward zero.\n*\n* @param {number} x - input value\n* @param {integer} n - integer power\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* // Round a value to 4 decimal places:\n* var v = truncb( 3.141592653589793, -4, 10 );\n* // returns 3.1415\n*\n* @example\n* // If n = 0 or b = 1, `truncb` behaves like `trunc`:\n* var v = truncb( 3.141592653589793, 0, 2 );\n* // returns 3.0\n*\n* @example\n* // Round a value to the nearest multiple of two toward zero:\n* var v = truncb( 5.0, 1, 2 );\n* // returns 4.0\n*/\nfunction truncb( x, n, b ) {\n\tvar y;\n\tvar s;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( n ) ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\treturn truncn( x, n );\n\t}\n\tif ( n === 0 || b === 1 ) {\n\t\treturn trunc( x );\n\t}\n\ts = pow( b, -n );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\ty = trunc( x*s ) / s;\n\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default truncb;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\nimport pow from './../../../../base/special/pow';\nimport log10 from './../../../../base/special/log10';\nimport ln from './../../../../base/special/ln';\nimport abs from './../../../../base/special/abs';\nimport floor from './../../../../base/special/floor';\nimport exponent from '@stdlib/number/float64/base/exponent';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Rounds a numeric value to the nearest number toward zero with \\\\(n\\\\) significant figures.\n*\n* @param {number} x - input value\n* @param {PositiveInteger} n - number of significant figures\n* @param {PositiveInteger} b - base\n* @returns {number} rounded value\n*\n* @example\n* var v = truncsd( 3.141592653589793, 5, 10 );\n* // returns 3.1415\n*\n* @example\n* var v = truncsd( 3.141592653589793, 1, 10 );\n* // returns 3.0\n*\n* @example\n* var v = truncsd( 12368.0, 2, 10 );\n* // returns 12000.0\n*\n* @example\n* var v = truncsd( 0.0313, 2, 2 );\n* // returns 0.03125\n*/\nfunction truncsd( x, n, b ) {\n\tvar exp;\n\tvar s;\n\tvar y;\n\tif (\n\t\tisnan( x ) ||\n\t\tisnan( n ) ||\n\t\tn < 1 ||\n\t\tisInfinite( n ) ||\n\t\tisnan( b ) ||\n\t\tb <= 0 ||\n\t\tisInfinite( b )\n\t) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || x === 0.0 ) {\n\t\treturn x;\n\t}\n\tif ( b === 10 ) {\n\t\texp = log10( abs( x ) );\n\t}\n\telse if ( b === 2 ) {\n\t\texp = exponent( abs( x ) );\n\t}\n\telse {\n\t\texp = ln( abs(x) ) / ln( b );\n\t}\n\texp = floor( exp - n + 1.0 );\n\ts = pow( b, abs( exp ) );\n\n\t// Check for overflow:\n\tif ( isInfinite( s ) ) {\n\t\treturn x;\n\t}\n\t// To avoid numerical stability issues due to floating-point rounding error (e.g., 3.55/0.1-35.5 = -7.105427357601e-15 and 3.55*10-35.5 = 0), we must treat positive and negative exponents separately.\n\tif ( exp < 0 ) {\n\t\ty = trunc( x * s ) / s;\n\t} else {\n\t\ty = trunc( x / s ) * s;\n\t}\n\t// Check for overflow:\n\tif ( isInfinite( y ) ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default truncsd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Wraps a value on the half-open interval `[min,max)`.\n*\n* @param {number} v - input value\n* @param {number} min - minimum value\n* @param {number} max - maximum value\n* @returns {number} wrapped value\n*\n* @example\n* var v = wrap( 3.14, 0.0, 5.0 );\n* // returns 3.14\n*\n* v = wrap( -3.14, 0.0, 5.0 );\n* // returns ~1.86\n*\n* v = wrap( 10.0, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = wrap( -0.0, 0.0, 5.0 );\n* // returns 0.0\n*\n* v = wrap( 0.0, -0.0, 5.0 );\n* // returns 0.0\n*\n* v = wrap( NaN, 0.0, 5.0 );\n* // returns NaN\n*\n* v = wrap( 0.0, NaN, 5.0 );\n* // returns NaN\n*\n* v = wrap( 3.14, 0.0, NaN );\n* // returns NaN\n*\n* v = wrap( 3.14, 5.0, 0.0 );\n* // returns NaN\n*/\nfunction wrap( v, min, max ) {\n\tvar delta;\n\tif (\n\t\tisnan( v ) ||\n\t\tisnan( min ) ||\n\t\tisnan( max ) ||\n\t\tmax <= min\n\t) {\n\t\treturn NaN;\n\t}\n\t// Normalize +-0 to +0...\n\tif ( v === 0.0 ) {\n\t\tv = 0.0;\n\t}\n\tif ( min === 0.0 ) {\n\t\tmin = 0.0;\n\t}\n\tif ( max === 0.0 ) {\n\t\tmax = 0.0;\n\t}\n\t// Simple case where value is already within range...\n\tif ( min <= v && v < max ) {\n\t\treturn v;\n\t}\n\t// Perform range reduction...\n\tdelta = max - min;\n\tif ( v < min ) {\n\t\tv += delta * ( trunc( (min-v)/delta ) + 1.0 );\n\t}\n\treturn min + ( (v-min) % delta );\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport log1p from './../../../../base/special/log1p';\n\n\n// MAIN //\n\n/**\n* Computes `x * ln(y+1)` so that the result is `0` if `x = 0`.\n*\n* @param {number} x - input value\n* @param {number} y - input value\n* @returns {number} function value\n*\n* @example\n* var out = xlog1py( 3.0, 2.0 );\n* // returns ~3.296\n*\n* @example\n* var out = xlog1py( 1.5, 5.9 );\n* // returns ~2.897\n*\n* @example\n* var out = xlog1py( 0.9, 1.0 );\n* // returns ~0.624\n*\n* @example\n* var out = xlog1py( 1.0, 0.0 );\n* // returns 0.0\n*\n* @example\n* var out = xlog1py( 0.0, -2.0 );\n* // returns 0.0\n*\n* @example\n* var out = xlog1py( 1.5, NaN );\n* // returns NaN\n*\n* @example\n* var out = xlog1py( 0.0, NaN );\n* // returns NaN\n*\n* @example\n* var out = xlog1py( NaN, 2.3 );\n* // returns NaN\n*/\nfunction xlog1py( x, y ) {\n\tif ( x === 0.0 && !isnan( y ) ) {\n\t\treturn 0.0;\n\t}\n\treturn x * log1p( y );\n}\n\n\n// EXPORTS //\n\nexport default xlog1py;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport ln from './../../../../base/special/ln';\n\n\n// MAIN //\n\n/**\n* Computes `x * ln(y)` so that the result is `0` if `x = 0`.\n*\n* @param {number} x - input value\n* @param {number} y - input value\n* @returns {number} function value\n*\n* @example\n* var out = xlogy( 3.0, 2.0 );\n* // returns ~2.079\n*\n* @example\n* var out = xlogy( 1.5, 5.9 );\n* // returns ~2.662\n*\n* @example\n* var out = xlogy( 0.9, 1.0 );\n* // returns 0.0\n*\n* @example\n* var out = xlogy( 0.0, -2.0 );\n* // returns 0.0\n*\n* @example\n* var out = xlogy( 1.5, NaN );\n* // returns NaN\n*\n* @example\n* var out = xlogy( 0.0, NaN );\n* // returns NaN\n*\n* @example\n* var out = xlogy( NaN, 2.3 );\n* // returns NaN\n*/\nfunction xlogy( x, y ) {\n\tif ( x === 0.0 && !isnan( y ) ) {\n\t\treturn 0.0;\n\t}\n\treturn x * ln( y );\n}\n\n\n// EXPORTS //\n\nexport default xlogy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a polynomial using single-precision floating-point arithmetic.\n*\n* @module @stdlib/math/base/tools/evalpolyf\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import evalpolyf from '@stdlib/math/base/tools/evalpolyf';\n*\n* var v = evalpolyf( new Float32Array( [ 3.0, 2.0, 1.0 ] ), 10.0 ); // 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import evalpolyf from '@stdlib/math/base/tools/evalpolyf';\n*\n* var polyval = evalpolyf.factory( new Float32Array( [ 3.0, 2.0, 1.0 ] ) );\n*\n* var v = polyval( 10.0 ); // => 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* v = polyval( 5.0 ); // => 3*5^0 + 2*5^1 + 1*5^2\n* // returns 38.0\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport Float32Array from '@stdlib/array/float32';\nimport Fcn from '@stdlib/function/ctor';\nimport evalpolyf from './main.js';\n\n\n// MAIN //\n\n/**\n* Generates a function for evaluating a polynomial using single-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The compiled function uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} c - polynomial coefficients sorted in ascending degree\n* @returns {Function} function for evaluating a polynomial\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var polyval = factory( new Float32Array( [ 3.0, 2.0, 1.0 ] ) );\n*\n* var v = polyval( 10.0 ); // => 3*10^0 + 2*10^1 + 1*10^2\n* // returns 123.0\n*\n* v = polyval( 5.0 ); // => 3*5^0 + 2*5^1 + 1*5^2\n* // returns 38.0\n*/\nfunction factory( c ) {\n\tvar f;\n\tvar n;\n\tvar m;\n\tvar i;\n\n\t// Explicitly copy in order to ensure single-precision:\n\tc = new Float32Array( c );\n\n\t// Avoid exceeding the maximum stack size on V8 :(. Note that the choice of `500` was empirically determined...\n\tif ( c.length > 500 ) {\n\t\treturn polyval;\n\t}\n\t// Code generation. Start with the function definition...\n\tf = 'return function evalpolyf(x){';\n\n\t// Create the function body...\n\tn = c.length;\n\n\t// If no coefficients, the function always returns 0...\n\tif ( n === 0 ) {\n\t\tf += 'return 0.0;';\n\t}\n\t// If only one coefficient, the function always returns that coefficient...\n\telse if ( n === 1 ) {\n\t\tf += 'return ' + c[ 0 ] + ';';\n\t}\n\t// If more than one coefficient, apply Horner's method...\n\telse {\n\t\t// If `x == 0`, return the first coefficient...\n\t\tf += 'if(x===0.0){return ' + c[ 0 ] + ';}';\n\n\t\t// Otherwise, evaluate the polynomial...\n\t\tf += 'return f64_to_f32(' + c[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+f64_to_f32(x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += 'f64_to_f32(';\n\t\t\t}\n\t\t\tf += c[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < 2*m; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\t}\n\t// Close the function:\n\tf += '}';\n\n\t// Add a source directive for debugging:\n\tf += '//# sourceURL=evalpolyf.factory.js';\n\n\t// Create the function in the global scope:\n\treturn ( new Fcn( 'f64_to_f32', f ) )( float64ToFloat32 );\n\n\t/*\n\t* function evalpolyf( x ) {\n\t* if ( x === 0.0 ) {\n\t* return c[ 0 ];\n\t* }\n\t* return f64_to_f32(c[0]+f64_to_f32(x*f64_to_f32(c[1]+f64_to_f32(x*f64_to_f32(c[2]+f64_to_f32(x*f64_to_f32(c[3]+...+f64_to_f32(x*f64_to_f32(c[n-2]+f64_to_f32(x*c[n-1]))))))))));\n\t* }\n\t*/\n\n\t/**\n\t* Evaluates a polynomial.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a polynomial\n\t* @returns {number} evaluated polynomial\n\t*/\n\tfunction polyval( x ) {\n\t\treturn evalpolyf( c, x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a rational function using double-precision floating-point arithmetic.\n*\n* @module @stdlib/math/base/tools/evalrational\n*\n* @example\n* import evalrational from '@stdlib/math/base/tools/evalrational';\n*\n* // 2x^3 + 4x^2 - 5x^1 - 6x^0 => degree 4\n* var P = [ -6.0, -5.0, 4.0, 2.0 ];\n*\n* // 0.5x^1 + 3x^0 => degree 2\n* var Q = [ 3.0, 0.5, 0.0, 0.0 ]; // zero-padded\n*\n* var v = evalrational( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 + 4*6^2 + 2*6^3 ) / ( 3*6^0 + 0.5*6^1 + 0*6^2 + 0*6^3 ) = (-6-30+144+432)/(3+3)\n* // returns 90.0\n*\n* @example\n* import evalrational from '@stdlib/math/base/tools/evalrational';\n*\n* var P = [ 20.0, 8.0, 3.0 ];\n* var Q = [ 10.0, 9.0, 1.0 ];\n*\n* var rational = evalrational.factory( P, Q );\n*\n* var v = rational( 10.0 ); // => (20*10^0 + 8*10^1 + 3*10^2) / (10*10^0 + 9*10^1 + 1*10^2) = (20+80+300)/(10+90+100)\n* // returns 2.0\n*\n* v = rational( 2.0 ); // => (20*2^0 + 8*2^1 + 3*2^2) / (10*2^0 + 9*2^1 + 1*2^2) = (20+16+12)/(10+18+4)\n* // returns 1.5\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Fcn from '@stdlib/function/ctor';\nimport evalrational from './main.js';\n\n\n// MAIN //\n\n/**\n* Generates a function for evaluating a rational function using double-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The compiled function uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} P - numerator polynomial coefficients sorted in ascending degree\n* @param {NumericArray} Q - denominator polynomial coefficients sorted in ascending degree\n* @returns {Function} function for evaluating a rational function\n*\n* @example\n* var P = [ 20.0, 8.0, 3.0 ];\n* var Q = [ 10.0, 9.0, 1.0 ];\n*\n* var rational = factory( P, Q );\n*\n* var v = rational( 10.0 ); // => (20*10^0 + 8*10^1 + 3*10^2) / (10*10^0 + 9*10^1 + 1*10^2) = (20+80+300)/(10+90+100)\n* // returns 2.0\n*\n* v = rational( 2.0 ); // => (20*2^0 + 8*2^1 + 3*2^2) / (10*2^0 + 9*2^1 + 1*2^2) = (20+16+12)/(10+18+4)\n* // returns 1.5\n*/\nfunction factory( P, Q ) {\n\tvar f;\n\tvar r;\n\tvar n;\n\tvar m;\n\tvar i;\n\n\t// Avoid exceeding maximum stack size on V8 :(. Note that the value of `500` was empirically determined...\n\tif ( P.length > 500 ) {\n\t\treturn rational;\n\t}\n\t// Code generation. Start with the function definition...\n\tf = 'return function evalrational(x){';\n\n\t// Create the function body...\n\tn = P.length;\n\n\t// Declare variables...\n\tf += 'var ax,s1,s2;';\n\n\t// If no coefficients, the function always returns NaN...\n\tif ( n === 0 ) {\n\t\tf += 'return NaN;';\n\t}\n\t// If P and Q have different lengths, the function always returns NaN...\n\telse if ( n !== Q.length ) {\n\t\tf += 'return NaN;';\n\t}\n\t// If P and Q have only one coefficient, the function always returns the ratio of the first coefficients...\n\telse if ( n === 1 ) {\n\t\tr = P[ 0 ] / Q[ 0 ];\n\t\tf += 'return ' + r + ';';\n\t}\n\t// If more than one coefficient, apply Horner's method to both the numerator and denominator...\n\telse {\n\t\t// If `x == 0`, return the ratio of the first coefficients...\n\t\tr = P[ 0 ] / Q[ 0 ];\n\t\tf += 'if(x===0.0){return ' + r + ';}';\n\n\t\t// Compute the absolute value of `x`...\n\t\tf += 'if(x<0.0){ax=-x;}else{ax=x;}';\n\n\t\t// If `abs(x) <= 1`, evaluate the numerator and denominator of the rational function using Horner's method...\n\t\tf += 'if(ax<=1.0){';\n\t\tf += 's1 = ' + P[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += P[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < m-1; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\t\tf += 's2 = ' + Q[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += Q[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < m-1; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\t// Close the if statement...\n\t\tf += '}else{';\n\n\t\t// If `abs(x) > 1`, evaluate the numerator and denominator via the inverse to avoid overflow...\n\t\tf += 'x = 1.0/x;';\n\t\tm = n - 1;\n\t\tf += 's1 = ' + P[ m ];\n\t\tfor ( i = m - 1; i >= 0; i-- ) {\n\t\t\tf += '+x*';\n\t\t\tif ( i > 0 ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += P[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < m-1; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\tm = n - 1;\n\t\tf += 's2 = ' + Q[ m ];\n\t\tfor ( i = m - 1; i >= 0; i-- ) {\n\t\t\tf += '+x*';\n\t\t\tif ( i > 0 ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += Q[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < m-1; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\t// Close the else statement...\n\t\tf += '}';\n\n\t\t// Return the ratio of the two sums...\n\t\tf += 'return s1/s2;';\n\t}\n\t// Close the function:\n\tf += '}';\n\n\t// Add a source directive for debugging:\n\tf += '//# sourceURL=evalrational.factory.js';\n\n\t// Create the function in the global scope:\n\treturn ( new Fcn( f ) )();\n\n\t/*\n\t*\tfunction evalrational( x ) {\n\t*\t\tvar ax, s1, s2;\n\t*\t\tif ( x === 0.0 ) {\n\t*\t\t\treturn P[0] / Q[0];\n\t*\t\t}\n\t*\t\tif ( x < 0.0 ) {\n\t*\t\t\tax = -x;\n\t*\t\t} else {\n\t*\t\t\tax = x;\n\t*\t\t}\n\t*\t\tif ( ax <= 1.0 ) {\n\t*\t\t\ts1 = P[0]+x*(P[1]+x*(P[2]+x*(P[3]+...+x*(P[n-2]+x*P[n-1]))));\n\t*\t\t\ts2 = Q[0]+x*(Q[1]+x*(Q[2]+x*(Q[3]+...+x*(Q[n-2]+x*Q[n-1]))));\n\t*\t\t} else {\n\t*\t\t\tx = 1.0/x;\n\t*\t\t\ts1 = P[n-1]+x*(P[n-2]+x*(P[n-3]+x*(P[n-4]+...+x*(P[1]+x*P[0]))));\n\t*\t\t\ts2 = Q[n-1]+x*(Q[n-2]+x*(Q[n-3]+x*(Q[n-4]+...+x*(Q[1]+x*Q[0]))));\n\t*\t\t}\n\t*\t\treturn s1 / s2;\n\t*\t}\n\t*/\n\n\t/**\n\t* Evaluates a rational function.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a rational function\n\t* @returns {number} evaluated rational function\n\t*/\n\tfunction rational( x ) {\n\t\treturn evalrational( P, Q, x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a rational function using single-precision floating-point arithmetic.\n*\n* @module @stdlib/math/base/tools/evalrationalf\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import evalrationalf from '@stdlib/math/base/tools/evalrationalf';\n*\n* // 2x^3 + 4x^2 - 5x^1 - 6x^0 => degree 4\n* var P = new Float32Array( [ -6.0, -5.0, 4.0, 2.0 ] );\n*\n* // 0.5x^1 + 3x^0 => degree 2\n* var Q = new Float32Array( [ 3.0, 0.5, 0.0, 0.0 ] ); // zero-padded\n*\n* var v = evalrationalf( P, Q, 6.0 ); // => ( -6*6^0 - 5*6^1 + 4*6^2 + 2*6^3 ) / ( 3*6^0 + 0.5*6^1 + 0*6^2 + 0*6^3 ) = (-6-30+144+432)/(3+3)\n* // returns ~90.0\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import evalrationalf from '@stdlib/math/base/tools/evalrationalf';\n*\n* var P = new Float32Array( [ 20.0, 8.0, 3.0 ] );\n* var Q = new Float32Array( [ 10.0, 9.0, 1.0 ] );\n*\n* var rational = evalrationalf.factory( P, Q );\n*\n* var v = rational( 10.0 ); // => (20*10^0 + 8*10^1 + 3*10^2) / (10*10^0 + 9*10^1 + 1*10^2) = (20+80+300)/(10+90+100)\n* // returns 2.0\n*\n* v = rational( 2.0 ); // => (20*2^0 + 8*2^1 + 3*2^2) / (10*2^0 + 9*2^1 + 1*2^2) = (20+16+12)/(10+18+4)\n* // returns 1.5\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport float64ToFloat32 from '@stdlib/number/float64/base/to-float32';\nimport Fcn from '@stdlib/function/ctor';\nimport evalrationalf from './main.js';\n\n\n// MAIN //\n\n/**\n* Generates a function for evaluating a rational function using single-precision floating-point arithmetic.\n*\n* ## Notes\n*\n* - The compiled function uses [Horner's rule][horners-method] for efficient computation.\n*\n* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method\n*\n* @param {NumericArray} P - numerator polynomial coefficients sorted in ascending degree\n* @param {NumericArray} Q - denominator polynomial coefficients sorted in ascending degree\n* @returns {Function} function for evaluating a rational function\n*\n* @example\n* var P = [ 20.0, 8.0, 3.0 ];\n* var Q = [ 10.0, 9.0, 1.0 ];\n*\n* var rational = factory( P, Q );\n*\n* var v = rational( 10.0 ); // => (20*10^0 + 8*10^1 + 3*10^2) / (10*10^0 + 9*10^1 + 1*10^2) = (20+80+300)/(10+90+100)\n* // returns 2.0\n*\n* v = rational( 2.0 ); // => (20*2^0 + 8*2^1 + 3*2^2) / (10*2^0 + 9*2^1 + 1*2^2) = (20+16+12)/(10+18+4)\n* // returns 1.5\n*/\nfunction factory( P, Q ) {\n\tvar f;\n\tvar r;\n\tvar n;\n\tvar m;\n\tvar i;\n\n\t// Avoid exceeding maximum stack size on V8 :(. Note that the value of `500` was empirically determined...\n\tif ( P.length > 500 ) {\n\t\treturn rational;\n\t}\n\t// Code generation. Start with the function definition...\n\tf = 'return function evalrationalf(x){';\n\n\t// Create the function body...\n\tn = P.length;\n\n\t// Declare variables...\n\tf += 'var ax,s1,s2;';\n\n\t// If no coefficients, the function always returns NaN...\n\tif ( n === 0 ) {\n\t\tf += 'return NaN;';\n\t}\n\t// If P and Q have different lengths, the function always returns NaN...\n\telse if ( n !== Q.length ) {\n\t\tf += 'return NaN;';\n\t}\n\t// If P and Q have only one coefficient, the function always returns the ratio of the first coefficients...\n\telse if ( n === 1 ) {\n\t\tr = float64ToFloat32( P[ 0 ] / Q[ 0 ] );\n\t\tf += 'return ' + r + ';';\n\t}\n\t// If more than one coefficient, apply Horner's method to both the numerator and denominator...\n\telse {\n\t\t// If `x == 0`, return the ratio of the first coefficients...\n\t\tr = float64ToFloat32( P[ 0 ] / Q[ 0 ] );\n\t\tf += 'if(x===0.0){return ' + r + ';}';\n\n\t\t// Compute the absolute value of `x`...\n\t\tf += 'if(x<0.0){ax=-x;}else{ax=x;}';\n\n\t\t// If `abs(x) <= 1`, evaluate the numerator and denominator of the rational function using Horner's method...\n\t\tf += 'if(ax<=1.0){';\n\t\tf += 's1 = f64_to_f32(' + P[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+f64_to_f32(x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += P[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < 2*m; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\t\tf += 's2 = f64_to_f32(' + Q[ 0 ];\n\t\tm = n - 1;\n\t\tfor ( i = 1; i < n; i++ ) {\n\t\t\tf += '+f64_to_f32(x*';\n\t\t\tif ( i < m ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += Q[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < 2*m; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\t// Close the if statement...\n\t\tf += '}else{';\n\n\t\t// If `abs(x) > 1`, evaluate the numerator and denominator via the inverse to avoid overflow...\n\t\tf += 'x = f64_to_f32(1.0/x);';\n\t\tm = n - 1;\n\t\tf += 's1 = f64_to_f32(' + P[ m ];\n\t\tfor ( i = m - 1; i >= 0; i-- ) {\n\t\t\tf += '+f64_to_f32(x*';\n\t\t\tif ( i > 0 ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += P[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < 2*m; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\tm = n - 1;\n\t\tf += 's2 = f64_to_f32(' + Q[ m ];\n\t\tfor ( i = m - 1; i >= 0; i-- ) {\n\t\t\tf += '+f64_to_f32(x*';\n\t\t\tif ( i > 0 ) {\n\t\t\t\tf += '(';\n\t\t\t}\n\t\t\tf += Q[ i ];\n\t\t}\n\t\t// Close all the parentheses...\n\t\tfor ( i = 0; i < 2*m; i++ ) {\n\t\t\tf += ')';\n\t\t}\n\t\tf += ';';\n\n\t\t// Close the else statement...\n\t\tf += '}';\n\n\t\t// Return the ratio of the two sums...\n\t\tf += 'return f64_to_f32(s1/s2);';\n\t}\n\t// Close the function:\n\tf += '}';\n\n\t// Add a source directive for debugging:\n\tf += '//# sourceURL=evalrationalf.factory.js';\n\n\t// Create the function in the global scope:\n\treturn ( new Fcn( 'f64_to_f32', f ) )( float64ToFloat32 );\n\n\t/*\n\t*\tfunction evalrationalf( x ) {\n\t*\t\tvar ax, s1, s2;\n\t*\t\tif ( x === 0.0 ) {\n\t*\t\t\treturn f64_to_f32( P[0] / Q[0] );\n\t*\t\t}\n\t*\t\tif ( x < 0.0 ) {\n\t*\t\t\tax = -x;\n\t*\t\t} else {\n\t*\t\t\tax = x;\n\t*\t\t}\n\t*\t\tif ( ax <= 1.0 ) {\n\t*\t\t\ts1 = f64_to_f32(P[0]+f64_to_f32(x*f64_to_f32(P[1]+f64_to_f32(x*f64_to_f32(P[2]+f64_to_f32(x*f64_to_f32(P[3]+...+f64_to_f32(x*f64_to_f32(P[n-2]+f64_to_f32(x*P[n-1]))))))))));\n\t*\t\t\ts2 = f64_to_f32(Q[0]+f64_to_f32(x*(Q[1]+f64_to_f32(x*(Q[2]+f64_to_f32(x*(Q[3]+...+f64_to_f32(x*(Q[n-2]+f64_to_f32(x*Q[n-1]))))))))));\n\t*\t\t} else {\n\t*\t\t\tx = 1.0/x;\n\t*\t\t\ts1 = f64_to_f32(P[n-1]+f64_to_f32(x*(P[n-2]+f64_to_f32(x*(P[n-3]+f64_to_f32(x*(P[n-4]+...+f64_to_f32(x*(P[1]+f64_to_f32(x*P[0]))))))))));\n\t*\t\t\ts2 = f64_to_f32(Q[n-1]+f64_to_f32(x*(Q[n-2]+f64_to_f32(x*(Q[n-3]+f64_to_f32(x*(Q[n-4]+...+f64_to_f32(x*(Q[1]+f64_to_f32(x*Q[0]))))))))));\n\t*\t\t}\n\t*\t\treturn f64_to_f32( s1 / s2 );\n\t*\t}\n\t*/\n\n\t/**\n\t* Evaluates a rational function.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a rational function\n\t* @returns {number} evaluated rational function\n\t*/\n\tfunction rational( x ) {\n\t\treturn evalrationalf( P, Q, x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar cache = {};\n\n\n// EXPORTS //\n\nexport default cache;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport binomcoef from './../../../../base/special/binomcoef';\nimport cache from './cache.js';\n\n\n// MAIN //\n\n/**\n* Computes polynomial coefficients.\n*\n* @private\n* @param {NonNegativeInteger} n - Fibonacci polynomial for which to compute coefficients\n* @returns {NonNegativeIntegerArray} polynomial coefficients\n*/\nfunction coefficients( n ) {\n\tvar coefs;\n\tvar i;\n\n\tcoefs = cache[ n ];\n\tif ( coefs === void 0 ) {\n\t\tcoefs = [];\n\t\tfor ( i = 0; i < n; i++ ) {\n\t\t\tcoefs.push( 0.0 );\n\t\t}\n\t\tfor ( i = n-1; i >= 0; i -= 2 ) {\n\t\t\tcoefs[ i ] = binomcoef( (n+i-1)/2, i );\n\t\t}\n\t\t// Memoize the coefficients:\n\t\tcache[ n ] = coefs;\n\t}\n\treturn coefs;\n}\n\n\n// EXPORTS //\n\nexport default coefficients;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport coefficients from './coefficients.js';\n\n\n// MAIN //\n\n/**\n* Evaluates a Fibonacci polynomial.\n*\n* @param {integer} n - Fibonacci polynomial to evaluate\n* @param {number} x - value at which to evaluate a Fibonacci polynomial\n* @returns {number} result\n*\n* @example\n* var v = fibpoly( 5, 1.0 );\n* // returns 5.0\n*/\nfunction fibpoly( n, x ) {\n\tvar coefs;\n\tvar an;\n\tvar v;\n\n\tan = abs( n );\n\tcoefs = coefficients( an );\n\n\tv = evalpoly( coefs, x );\n\tif ( n >= 0 ) {\n\t\treturn v;\n\t}\n\treturn pow( -1.0, an-1 ) * v;\n}\n\n\n// EXPORTS //\n\nexport default fibpoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from './../../../../base/assert/is-nan';\nimport isint from './../../../../base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Evaluates a normalized Hermite polynomial using double-precision floating-point arithmetic.\n*\n* @param {NonNegativeInteger} n - nonnegative polynomial degree\n* @param {number} x - evaluation point\n* @returns {number} function value\n*\n* @example\n* var v = normhermitepoly( 1, 0.5 );\n* // returns 0.5\n*\n* @example\n* var v = normhermitepoly( 0, 0.5 );\n* // returns 1.0\n*\n* @example\n* var v = normhermitepoly( 2, 0.5 );\n* // returns -0.75\n*\n* @example\n* var v = normhermitepoly( -1, 0.5 );\n* // returns NaN\n*/\nfunction normhermitepoly( n, x ) {\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar i;\n\n\tif ( isnan( n ) || isnan( x ) || n < 0 || !isint( n ) ) {\n\t\treturn NaN;\n\t}\n\tif ( n === 0 ) {\n\t\t// `x` is completely canceled from the expression:\n\t\treturn 1.0;\n\t}\n\tif ( n === 1 ) {\n\t\treturn x;\n\t}\n\ty2 = 1.0;\n\ty3 = 0.0;\n\tfor ( i = n; i > 1; i-- ) {\n\t\ty1 = (x*y2) - (i*y3);\n\t\ty3 = y2;\n\t\ty2 = y1;\n\t}\n\treturn (x*y2) - y3;\n}\n\n\n// EXPORTS //\n\nexport default normhermitepoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport SQRT2 from '@stdlib/constants/float64/sqrt-two';\nimport pow from './../../../../base/special/pow';\nimport normhermitepoly from './../../../../base/tools/normhermitepoly';\n\n\n// MAIN //\n\n/**\n* Evaluates a physicist's Hermite polynomial.\n*\n* @param {NonNegativeInteger} n - nonnegative polynomial degree\n* @param {number} x - evaluation point\n* @returns {number} function value\n*\n* @example\n* var v = hermitepoly( 1, 1.0 );\n* // returns 2.0\n*\n* @example\n* var v = hermitepoly( 1, 0.5 );\n* // returns 1.0\n*\n* @example\n* var v = hermitepoly( -1, 0.5 );\n* // returns NaN\n*\n* @example\n* var v = hermitepoly( 0, 0.5 );\n* // returns 1.0\n*\n* @example\n* var v = hermitepoly( 2, 0.5 );\n* // returns -1.0\n*/\nfunction hermitepoly( n, x ) {\n\treturn pow( 2.0, 0.5*n ) * normhermitepoly( n, SQRT2*x );\n}\n\n\n// EXPORTS //\n\nexport default hermitepoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a Fibonacci polynomial.\n*\n* @module @stdlib/math/base/tools/fibpoly\n*\n* @example\n* import fibpoly from '@stdlib/math/base/tools/fibpoly';\n*\n* var v = fibpoly( 5, 1.0 );\n* // returns 5.0\n*\n* @example\n* import { factory as factory } from '@stdlib/math/base/tools/fibpoly';\n*\n* var fibpolyval = factory( 5 );\n*\n* var v = fibpolyval( 1.0 );\n* // returns 5.0\n*\n* v = fibpolyval( 2.0 );\n* // returns 29.0\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as evalpoly } from './../../../../base/tools/evalpoly';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport coefficients from './coefficients.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for evaluating a Fibonacci polynomial.\n*\n* @param {integer} n - Fibonacci polynomial to evaluate\n* @returns {Function} function for evaluating a Fibonacci polynomial\n*\n* @example\n* var fibpolyval = factory( 5 );\n*\n* var v = fibpolyval( 1.0 );\n* // returns 5.0\n*\n* v = fibpolyval( 2.0 );\n* // returns 29.0\n*/\nfunction factory( n ) {\n\tvar coefs;\n\tvar an;\n\tvar f;\n\tvar s;\n\n\tan = abs( n );\n\tcoefs = coefficients( an );\n\n\tf = evalpoly( coefs );\n\ts = pow( -1.0, an-1 );\n\tif ( n >= 0 || s === 1.0 ) {\n\t\treturn f;\n\t}\n\treturn polyval;\n\n\t/**\n\t* Evaluates a Fibonacci polynomial.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a Fibonacci polynomial\n\t* @returns {number} result\n\t*/\n\tfunction polyval( x ) {\n\t\treturn -1.0 * f( x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a normalized Hermite polynomial using double-precision floating-point arithmetic.\n*\n* @module @stdlib/math/base/tools/normhermitepoly\n*\n* @example\n* import normhermitepoly from '@stdlib/math/base/tools/normhermitepoly';\n*\n* var v = normhermitepoly( 1, 0.5 );\n* // returns 0.5\n*\n* v = normhermitepoly( 0, 0.5 );\n* // returns 1.0\n*\n* v = normhermitepoly( 2, 0.5 );\n* // returns -0.75\n*\n* v = normhermitepoly( -1, 0.5 );\n* // returns NaN\n*\n* @example\n* import { factory as factory } from '@stdlib/math/base/tools/normhermitepoly';\n*\n* var polyval = factory( 2 );\n*\n* var v = polyval( 0.5 );\n* // returns -0.75\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport constantFunction from '@stdlib/utils/constant-function';\nimport isnan from './../../../../base/assert/is-nan';\nimport isint from './../../../../base/assert/is-integer';\n\n\n// MAIN //\n\n/**\n* Returns a function for evaluating a normalized Hermite polynomial using double-precision floating-point arithmetic.\n*\n* @param {NonNegativeInteger} n - polynomial degree\n* @returns {Function} function for evaluating a normalized Hermite polynomial\n*\n* @example\n* var polyval = factory( 2 );\n*\n* var v = polyval( 0.5 );\n* // returns -0.75\n*/\nfunction factory( n ) {\n\tif ( n < 0 || isnan( n ) || !isint( n ) ) {\n\t\treturn constantFunction( NaN );\n\t}\n\tif ( n === 0 ) {\n\t\treturn constantFunction( 1.0 );\n\t}\n\treturn polyval;\n\n\t/**\n\t* Evaluates a normalized Hermite polynomial using double-precision floating-point arithmetic.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a normalized Hermite polynomial\n\t* @returns {number} result\n\t*/\n\tfunction polyval( x ) {\n\t\tvar y1;\n\t\tvar y2;\n\t\tvar y3;\n\t\tvar i;\n\n\t\tif ( isnan( x ) ) {\n\t\t\treturn NaN;\n\t\t}\n\t\ty2 = 1.0;\n\t\ty3 = 0.0;\n\t\tfor ( i = n; i > 1; i-- ) {\n\t\t\ty1 = (x*y2) - (i*y3);\n\t\t\ty3 = y2;\n\t\t\ty2 = y1;\n\t\t}\n\t\treturn (x*y2) - y3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a physicist's Hermite polynomial.\n*\n* @module @stdlib/math/base/tools/hermitepoly\n*\n* @example\n* import hermitepoly from '@stdlib/math/base/tools/hermitepoly';\n*\n* var v = hermitepoly( 1, 1.0 );\n* // returns 2.0\n*\n* v = hermitepoly( 1, 0.5 );\n* // returns 0.5\n*\n* v = hermitepoly( -1, 0.5 );\n* // returns NaN\n*\n* v = hermitepoly( 0, 0.5 );\n* // returns 1.0\n*\n* v = hermitepoly( 2, 0.5 );\n* // returns -1.0\n*\n* @example\n* import { factory as factory } from '@stdlib/math/base/tools/hermitepoly';\n*\n* var polyval = factory( 2 );\n*\n* var v = polyval( 0.5 );\n* // returns -1.0\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport constantFunction from '@stdlib/utils/constant-function';\nimport isnan from './../../../../base/assert/is-nan';\nimport isint from './../../../../base/assert/is-integer';\nimport SQRT2 from '@stdlib/constants/float64/sqrt-two';\nimport pow from './../../../../base/special/pow';\nimport normhermitepoly from './../../../../base/tools/normhermitepoly';\n\n\n// MAIN //\n\n/**\n* Returns a function for evaluating a physicist's Hermite polynomial.\n*\n* @param {NonNegativeInteger} n - polynomial degree\n* @returns {Function} function for evaluating a physicist's Hermite polynomial\n*\n* @example\n* var polyval = factory( 2 );\n*\n* var v = polyval( 0.5 );\n* // returns -1.0\n*/\nfunction factory( n ) {\n\tvar c;\n\tif ( n < 0 || isnan( n ) || !isint( n ) ) {\n\t\treturn constantFunction( NaN );\n\t}\n\tif ( n === 0 ) {\n\t\treturn constantFunction( 1.0 );\n\t}\n\tc = pow( 2.0, 0.5*n );\n\treturn polyval;\n\n\t/**\n\t* Evaluates a physicist's Hermite polynomial.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a physicist's Hermite polynomial\n\t* @returns {number} result\n\t*/\n\tfunction polyval( x ) {\n\t\treturn c * normhermitepoly( n, SQRT2*x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar cache = {};\n\n\n// EXPORTS //\n\nexport default cache;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport binomcoef from './../../../../base/special/binomcoef';\nimport floor from './../../../../base/special/floor';\nimport ceil from './../../../../base/special/ceil';\nimport cache from './cache.js';\n\n\n// MAIN //\n\n/**\n* Computes polynomial coefficients.\n*\n* ## Notes\n*\n* - Coefficients are computed via a (1,2)-Pascal triangle (i.e., Lucas triangle). For more details, see [Lucas polynomials][oeis-lucas-polynomials] and [Lucas triangle][oeis-lucas-triangle].\n*\n* [oeis-lucas-polynomials]: https://oeis.org/wiki/Lucas_polynomials\n* [oeis-lucas-triangle]: https://oeis.org/wiki/Lucas_triangle\n*\n* @private\n* @param {NonNegativeInteger} n - Lucas polynomial for which to compute coefficients\n* @returns {NonNegativeIntegerArray} polynomial coefficients\n*/\nfunction coefficients( n ) {\n\tvar coefs;\n\tvar half;\n\tvar high;\n\tvar low;\n\tvar p;\n\tvar a;\n\tvar b;\n\tvar m;\n\tvar i;\n\n\tcoefs = cache[ n ];\n\tif ( coefs === void 0 ) {\n\t\tm = n + 1;\n\t\tcoefs = new Array( m );\n\t\tif ( n === 0 ) {\n\t\t\tcoefs[ 0 ] = 2.0;\n\t\t} else {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\tcoefs[ i ] = 0.0;\n\t\t\t}\n\t\t\thalf = n / 2;\n\t\t\thigh = ceil( half );\n\t\t\tlow = floor( half );\n\t\t\tfor ( i = 0; i <= low; i++ ) {\n\t\t\t\tp = (2*i) + (n%2);\n\t\t\t\ta = 2.0 * binomcoef( high+i-1, low-i-1 );\n\t\t\t\tb = binomcoef( high+i-1, low-i );\n\t\t\t\tcoefs[ p ] += a + b;\n\t\t\t}\n\t\t}\n\t\t// Memoize the coefficients:\n\t\tcache[ n ] = coefs;\n\t}\n\treturn coefs;\n}\n\n\n// EXPORTS //\n\nexport default coefficients;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport evalpoly from './../../../../base/tools/evalpoly';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport coefficients from './coefficients.js';\n\n\n// MAIN //\n\n/**\n* Evaluates a Lucas polynomial.\n*\n* @param {integer} n - Lucas polynomial to evaluate\n* @param {number} x - value at which to evaluate a Lucas polynomial\n* @returns {number} result\n*\n* @example\n* var v = lucaspoly( 5, 1.0 );\n* // returns 11.0\n*/\nfunction lucaspoly( n, x ) {\n\tvar coefs;\n\tvar an;\n\tvar v;\n\n\tan = abs( n );\n\tcoefs = coefficients( an );\n\n\tv = evalpoly( coefs, x );\n\tif ( n >= 0 ) {\n\t\treturn v;\n\t}\n\treturn pow( -1.0, an ) * v;\n}\n\n\n// EXPORTS //\n\nexport default lucaspoly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate a Lucas polynomial.\n*\n* @module @stdlib/math/base/tools/lucaspoly\n*\n* @example\n* import lucaspoly from '@stdlib/math/base/tools/lucaspoly';\n*\n* var v = lucaspoly( 5, 1.0 );\n* // returns 11.0\n*\n* @example\n* import { factory as factory } from '@stdlib/math/base/tools/lucaspoly';\n*\n* var polyval = factory( 5 );\n*\n* var v = polyval( 1.0 );\n* // returns 11.0\n*\n* v = polyval( 2.0 );\n* // returns 82.0\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as evalpoly } from './../../../../base/tools/evalpoly';\nimport pow from './../../../../base/special/pow';\nimport abs from './../../../../base/special/abs';\nimport coefficients from './coefficients.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for evaluating a Lucas polynomial.\n*\n* @param {integer} n - Lucas polynomial to evaluate\n* @returns {Function} function for evaluating a Lucas polynomial\n*\n* @example\n* var polyval = factory( 5 );\n*\n* var v = polyval( 1.0 );\n* // returns 11.0\n*\n* v = polyval( 2.0 );\n* // returns 82.0\n*/\nfunction factory( n ) {\n\tvar coefs;\n\tvar an;\n\tvar f;\n\tvar s;\n\n\tan = abs( n );\n\tcoefs = coefficients( an );\n\n\tf = evalpoly( coefs );\n\ts = pow( -1.0, an );\n\tif ( n >= 0 || s === 1.0 ) {\n\t\treturn f;\n\t}\n\treturn polyval;\n\n\t/**\n\t* Evaluates a Lucas polynomial.\n\t*\n\t* @private\n\t* @param {number} x - value at which to evaluate a Lucas polynomial\n\t* @returns {number} result\n\t*/\n\tfunction polyval( x ) {\n\t\treturn -1.0 * f( x );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: evalpoly-compile, evalpoly-compile-c, evalrational-compile, evalrational-compile-c\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name continuedFraction\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/continued-fraction}\n*/\nimport continuedFraction from './../../../base/tools/continued-fraction';\nsetReadOnly( ns, 'continuedFraction', continuedFraction );\n\n/**\n* @name evalpoly\n* @memberof tools\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/evalpoly}\n*/\nimport evalpoly from './../../../base/tools/evalpoly';\nsetReadOnly( ns, 'evalpoly', evalpoly );\n\n/**\n* @name evalpolyf\n* @memberof tools\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/evalpolyf}\n*/\nimport evalpolyf from './../../../base/tools/evalpolyf';\nsetReadOnly( ns, 'evalpolyf', evalpolyf );\n\n/**\n* @name evalrational\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/evalrational}\n*/\nimport evalrational from './../../../base/tools/evalrational';\nsetReadOnly( ns, 'evalrational', evalrational );\n\n/**\n* @name evalrationalf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/evalrationalf}\n*/\nimport evalrationalf from './../../../base/tools/evalrationalf';\nsetReadOnly( ns, 'evalrationalf', evalrationalf );\n\n/**\n* @name fibpoly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/fibpoly}\n*/\nimport fibpoly from './../../../base/tools/fibpoly';\nsetReadOnly( ns, 'fibpoly', fibpoly );\n\n/**\n* @name hermitepoly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/hermitepoly}\n*/\nimport hermitepoly from './../../../base/tools/hermitepoly';\nsetReadOnly( ns, 'hermitepoly', hermitepoly );\n\n/**\n* @name lucaspoly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/lucaspoly}\n*/\nimport lucaspoly from './../../../base/tools/lucaspoly';\nsetReadOnly( ns, 'lucaspoly', lucaspoly );\n\n/**\n* @name normhermitepoly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/normhermitepoly}\n*/\nimport normhermitepoly from './../../../base/tools/normhermitepoly';\nsetReadOnly( ns, 'normhermitepoly', normhermitepoly );\n\n/**\n* @name sumSeries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/tools/sum-series}\n*/\nimport sumSeries from './../../../base/tools/sum-series';\nsetReadOnly( ns, 'sumSeries', sumSeries );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport maxabs from './maxabs.js';\nimport max from './max.js';\nimport minabs from './minabs.js';\nimport min from './min.js';\nimport meanabs from './meanabs.js';\nimport mean from './mean.js';\nimport x from './x.js';\nimport y from './y.js';\n\n\n// MAIN //\n\nvar SCALES = {\n\t'max-abs': maxabs,\n\t'max': max,\n\t'min-abs': minabs,\n\t'min': min,\n\t'mean-abs': meanabs,\n\t'mean': mean,\n\t'x': x,\n\t'y': y\n};\n\n\n// EXPORTS //\n\nexport default SCALES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Returns the maximum value of `|x|` and `|y|`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum absolute value\n*\n* @example\n* var z = maxabs( 5.0, -11.11 );\n* // returns 11.11\n*/\nfunction maxabs( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\treturn ( x < y ) ? y : x;\n}\n\n\n// EXPORTS //\n\nexport default maxabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the maximum value of `x` and `y`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum value\n*\n* @example\n* var z = max( 3.14, -1.0 );\n* // returns 3.14\n*/\nfunction max( x, y ) {\n\treturn ( x < y ) ? y : x; // doesn't account for +-0\n}\n\n\n// EXPORTS //\n\nexport default max;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Returns the minimum value of `|x|` and `|y|`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum absolute value value\n*\n* @example\n* var z = minabs( -3.14, -11.0 );\n* // returns 3.14\n*/\nfunction minabs( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\treturn ( x > y ) ? y : x;\n}\n\n\n// EXPORTS //\n\nexport default minabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the minimum value of `x` and `y`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var z = min( 10.0, 3.14 );\n* // returns 3.14\n*/\nfunction min( x, y ) {\n\treturn ( x > y ) ? y : x; // doesn't account for +-0\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Returns the arithmetic mean of `|x|` and `|y|`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} arithmetic mean\n*\n* @example\n* var z = meanabs( -3.5, -7.5 );\n* // returns 5.5\n*/\nfunction meanabs( x, y ) {\n\tx = abs( x );\n\ty = abs( y );\n\treturn x + ((y-x)/2.0);\n}\n\n\n// EXPORTS //\n\nexport default meanabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the arithmetic mean of `x` and `y`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} arithmetic mean\n*\n* @example\n* var z = mean( 3.5, 7.5 );\n* // returns 5.5\n*/\nfunction mean( x, y ) {\n\treturn x + ((y-x)/2.0);\n}\n\n\n// EXPORTS //\n\nexport default mean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns `x`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} first number\n*\n* @example\n* var z = f( 5.0, 3.14 );\n* // returns 5.0\n*/\nfunction f( x ) {\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns `y`.\n*\n* @private\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} second number\n*\n* @example\n* var z = f( 5.0, 3.14 );\n* // returns 3.14\n*/\nfunction f( x, y ) {\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert/is-function';\nimport format from '@stdlib/string/format';\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport NINF from '@stdlib/constants/float64/ninf';\nimport abs from './../../../../base/special/abs';\nimport SCALE from './scale.js';\n\n\n// MAIN //\n\n/**\n* Computes the relative difference of two real numbers.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @param {(string|Function)} [scale='max-abs'] - scale function\n* @throws {Error} must provide a recognized scale function name\n* @returns {number} relative difference\n*\n* @example\n* var d = relativeDifference( 2.0, 5.0 ); // => 3/5\n* // returns 0.6\n*\n* @example\n* var d = relativeDifference( -1.0, 3.14 ); // => 4.14/3.14\n* // returns ~1.318\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'max-abs' ); // => |-7/5|\n* // returns 1.4\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'max' ); // => |-7/5|\n* // returns 1.4\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'min-abs' ); // => |-7/2|\n* // returns 3.5\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'min' ); // => |-7/-2|\n* // returns 3.5\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'mean-abs' ); // => |-7/3.5|\n* // returns 2.0\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'mean' ); // => |-7/1.5|\n* // returns ~4.67\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'x' ); // => |-7/-2|\n* // returns 3.5\n*\n* @example\n* var d = relativeDifference( 5.0, -2.0, 'x' ); // => |7/5|\n* // returns 1.4\n*\n* @example\n* var d = relativeDifference( -2.0, 5.0, 'y' ); // => |-7/5|\n* // returns 1.4\n*\n* @example\n* var d = relativeDifference( 5.0, -2.0, 'y' ); // => |7/-2|\n* // returns 3.5\n*/\nfunction relativeDifference( x, y, scale ) {\n\tvar f;\n\tvar s;\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif (\n\t\tx === PINF ||\n\t\tx === NINF ||\n\t\ty === PINF ||\n\t\ty === NINF\n\t) {\n\t\tif ( x === y ) {\n\t\t\treturn NaN;\n\t\t}\n\t\treturn PINF;\n\t}\n\t// If the absolute difference is `0`, then so is the relative difference:\n\tif ( x === y ) {\n\t\treturn 0.0;\n\t}\n\tif ( isFunction( scale ) ) {\n\t\tf = scale;\n\t} else {\n\t\tif ( scale === void 0 ) {\n\t\t\tscale = 'max-abs';\n\t\t}\n\t\tf = SCALE[ scale ];\n\t\tif ( f === void 0 ) {\n\t\t\tthrow new Error( format( 'invalid argument. Unrecognized/unsupported scale function. Value: `%s`.', scale ) );\n\t\t}\n\t}\n\ts = f( x, y );\n\tif ( s === 0.0 ) {\n\t\t// Bail. No possible return value which works for all possible scale functions...\n\t\treturn NaN;\n\t}\n\treturn abs( (x - y) / s );\n}\n\n\n// EXPORTS //\n\nexport default relativeDifference;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reldiff from './../../../../base/utils/relative-difference';\nimport isnan from './../../../../base/assert/is-nan';\nimport PINF from '@stdlib/constants/float64/pinf';\nimport MAX_FLOAT64 from '@stdlib/constants/float64/max';\nimport EPS from '@stdlib/constants/float64/eps';\n\n\n// VARIABLES //\n\nvar MAX_DIFF = MAX_FLOAT64 * EPS;\n\n\n// MAIN //\n\n/**\n* Computes the relative difference in units of double-precision floating-point epsilon.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @param {(string|Function)} [scale='max-abs'] - scale function\n* @returns {number} relative difference in units of double-precision floating-point epsilon\n*\n* @example\n* var d = epsilonDifference( 12.15, 12.149999999999999 ); // => ~0.658ε\n* // returns ~0.658\n*\n* @example\n* var d = epsilonDifference( 2.4341309458983933, 2.4341309458633909, 'mean-abs' ); // => ~64761.5ε => ~1.438e-11\n* // returns ~64761.5\n*\n* @example\n* function scale( x, y ) {\n* // Return the minimum value:\n* return ( x > y ) ? y : x;\n* }\n*\n* var d = epsilonDifference( 1.0000000000000002, 1.0000000000000100, scale ); // => ~44ε\n* // returns ~44\n*/\nfunction epsilonDifference( x, y, scale ) {\n\tvar d = reldiff( x, y, scale || 'max-abs' );\n\n\t// If `d` is `NaN` or `+infinity`, nothing we can do...\n\tif ( isnan( d ) || d === PINF ) {\n\t\treturn d;\n\t}\n\t// If `d >= MAX_VALUE`, we will overflow, as `EPS <<< 1`. To prevent overflow, we cap out at the maximum double-precision floating-point number...\n\tif ( d >= MAX_DIFF ) {\n\t\treturn MAX_FLOAT64;\n\t}\n\t// Return the answer to the question: how many EPS increments is the relative difference?\n\treturn d / EPS;\n}\n\n\n// EXPORTS //\n\nexport default epsilonDifference;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name absdiff\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/utils/absolute-difference}\n*/\nimport absdiff from './../../../base/utils/absolute-difference';\nsetReadOnly( ns, 'absdiff', absdiff );\n\n/**\n* @name epsdiff\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/utils/float64-epsilon-difference}\n*/\nimport epsdiff from './../../../base/utils/float64-epsilon-difference';\nsetReadOnly( ns, 'epsdiff', epsdiff );\n\n/**\n* @name reldiff\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/base/utils/relative-difference}\n*/\nimport reldiff from './../../../base/utils/relative-difference';\nsetReadOnly( ns, 'reldiff', reldiff );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants/float64/pinf';\nimport abs from './../../../../base/special/abs';\nimport isnan from './../../../../base/assert/is-nan';\nimport isInfinite from './../../../../base/assert/is-infinite';\n\n\n// MAIN //\n\n/**\n* Computes the absolute difference.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} absolute difference\n*\n* @example\n* var d = absoluteDifference( 2.0, 5.0 );\n* // returns 3.0\n*\n* @example\n* var d = absoluteDifference( -1.0, 3.14 );\n* // returns ~4.14\n*\n* @example\n* var d = absoluteDifference( 10.1, -2.05 );\n* // returns ~12.15\n*\n* @example\n* var d = absoluteDifference( -0.0, 0.0 );\n* // returns +0.0\n*\n* @example\n* var d = absoluteDifference( NaN, 5.0 );\n* // returns NaN\n*\n* @example\n* var d = absoluteDifference( Infinity, -Infinity );\n* // returns Infinity\n*\n* @example\n* var d = absoluteDifference( Infinity, Infinity );\n* // returns NaN\n*/\nfunction absoluteDifference( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( isInfinite( x ) || isInfinite( y ) ) {\n\t\tif ( x === y ) {\n\t\t\treturn NaN;\n\t\t}\n\t\treturn PINF;\n\t}\n\treturn abs( x - y );\n}\n\n\n// EXPORTS //\n\nexport default absoluteDifference;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: napi\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/assert}\n*/\nimport assert from './../../base/assert';\nsetReadOnly( ns, 'assert', assert );\n\n/**\n* @name ops\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/ops}\n*/\nimport ops from './../../base/ops';\nsetReadOnly( ns, 'ops', ops );\n\n/**\n* @name special\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/special}\n*/\nimport special from './../../base/special';\nsetReadOnly( ns, 'special', special );\n\n/**\n* @name tools\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/tools}\n*/\nimport tools from './../../base/tools';\nsetReadOnly( ns, 'tools', tools );\n\n/**\n* @name utils\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base/utils}\n*/\nimport utils from './../../base/utils';\nsetReadOnly( ns, 'utils', utils );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name iterAdd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/ops/add}\n*/\nimport iterAdd from './../../../iter/ops/add';\nsetReadOnly( ns, 'iterAdd', iterAdd );\n\n/**\n* @name iterDivide\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/ops/divide}\n*/\nimport iterDivide from './../../../iter/ops/divide';\nsetReadOnly( ns, 'iterDivide', iterDivide );\n\n/**\n* @name iterMod\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/ops/mod}\n*/\nimport iterMod from './../../../iter/ops/mod';\nsetReadOnly( ns, 'iterMod', iterMod );\n\n/**\n* @name iterMultiply\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/ops/multiply}\n*/\nimport iterMultiply from './../../../iter/ops/multiply';\nsetReadOnly( ns, 'iterMultiply', iterMultiply );\n\n/**\n* @name iterSubtract\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/ops/subtract}\n*/\nimport iterSubtract from './../../../iter/ops/subtract';\nsetReadOnly( ns, 'iterSubtract', iterSubtract );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which performs element-wise addition of two or more iterators.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {...(Iterator|number)} iterator - subsequent iterators\n* @throws {Error} must provide two or more iterators\n* @throws {TypeError} must provide iterator protocol-compliant objects\n* @returns {Iterator} iterator\n*\n* @example\n* import array2iterator from '@stdlib/array/to-iterator';\n*\n* var it1 = array2iterator( [ 1.0, 2.0 ] );\n* var it2 = array2iterator( [ 3.0, 4.0 ] );\n*\n* var iter = iterAdd( it1, it2 );\n*\n* var v = iter.next().value;\n* // returns 4.0\n*\n* v = iter.next().value;\n* // returns 6.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterAdd() {\n\tvar iterators;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar FLG;\n\tvar i;\n\n\tniter = arguments.length;\n\tif ( niter < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide two or more iterators.' );\n\t}\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\ti = 0;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar s;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ts = 0.0;\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\ts += v.value;\n\t\t\t\t} else {\n\t\t\t\t\ts = NaN;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts += iterators[ i ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'value': s,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\treturn iterAdd.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterAdd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which performs element-wise division of two or more iterators.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {...(Iterator|number)} iterator - subsequent iterators\n* @throws {Error} must provide two or more iterators\n* @throws {TypeError} must provide iterator protocol-compliant objects\n* @returns {Iterator} iterator\n*\n* @example\n* import array2iterator from '@stdlib/array/to-iterator';\n*\n* var it1 = array2iterator( [ 3.0, 2.0 ] );\n* var it2 = array2iterator( [ 1.0, 4.0 ] );\n*\n* var iter = iterDivide( it1, it2 );\n*\n* var v = iter.next().value;\n* // returns 3.0\n*\n* v = iter.next().value;\n* // returns 0.5\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterDivide() {\n\tvar iterators;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar FLG;\n\tvar i;\n\n\tniter = arguments.length;\n\tif ( niter < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide two or more iterators.' );\n\t}\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\ti = 0;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar s;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( types[ 0 ] ) {\n\t\t\tv = iterators[ 0 ].next();\n\t\t\tif ( v.done ) {\n\t\t\t\tFLG = true;\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\ts = v.value;\n\t\t\t} else {\n\t\t\t\ts = NaN;\n\t\t\t}\n\t\t} else {\n\t\t\ts = iterators[ 0 ];\n\t\t}\n\t\tfor ( i = 1; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\ts /= v.value;\n\t\t\t\t} else {\n\t\t\t\t\ts = NaN;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts /= iterators[ i ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'value': s,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\treturn iterDivide.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterDivide;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which performs an element-wise modulo operation of two or more iterators.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {...(Iterator|number)} iterator - subsequent iterators\n* @throws {Error} must provide two or more iterators\n* @throws {TypeError} must provide iterator protocol-compliant objects\n* @returns {Iterator} iterator\n*\n* @example\n* import array2iterator from '@stdlib/array/to-iterator';\n*\n* var it1 = array2iterator( [ 3.0, 2.0 ] );\n* var it2 = array2iterator( [ 1.0, 4.0 ] );\n*\n* var iter = iterMod( it1, it2 );\n*\n* var v = iter.next().value;\n* // returns 0.0\n*\n* v = iter.next().value;\n* // returns 2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterMod() {\n\tvar iterators;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar FLG;\n\tvar i;\n\n\tniter = arguments.length;\n\tif ( niter < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide two or more iterators.' );\n\t}\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\ti = 0;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar r;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( types[ 0 ] ) {\n\t\t\tv = iterators[ 0 ].next();\n\t\t\tif ( v.done ) {\n\t\t\t\tFLG = true;\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\tr = v.value;\n\t\t\t} else {\n\t\t\t\tr = NaN;\n\t\t\t}\n\t\t} else {\n\t\t\tr = iterators[ 0 ];\n\t\t}\n\t\tfor ( i = 1; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\tr %= v.value;\n\t\t\t\t} else {\n\t\t\t\t\tr = NaN;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tr %= iterators[ i ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'value': r,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\treturn iterMod.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterMod;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which performs element-wise multiplication of two or more iterators.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {...(Iterator|number)} iterator - subsequent iterators\n* @throws {Error} must provide two or more iterators\n* @throws {TypeError} must provide iterator protocol-compliant objects\n* @returns {Iterator} iterator\n*\n* @example\n* import array2iterator from '@stdlib/array/to-iterator';\n*\n* var it1 = array2iterator( [ 1.0, 2.0 ] );\n* var it2 = array2iterator( [ 3.0, 4.0 ] );\n*\n* var iter = iterMultiply( it1, it2 );\n*\n* var v = iter.next().value;\n* // returns 3.0\n*\n* v = iter.next().value;\n* // returns 8.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterMultiply() {\n\tvar iterators;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar FLG;\n\tvar i;\n\n\tniter = arguments.length;\n\tif ( niter < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide two or more iterators.' );\n\t}\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\ti = 0;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar s;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ts = 1.0;\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\ts *= v.value;\n\t\t\t\t} else {\n\t\t\t\t\ts = NaN;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts *= iterators[ i ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'value': s,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\treturn iterMultiply.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterMultiply;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which performs element-wise subtraction of two or more iterators.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {...(Iterator|number)} iterator - subsequent iterators\n* @throws {Error} must provide two or more iterators\n* @throws {TypeError} must provide iterator protocol-compliant objects\n* @returns {Iterator} iterator\n*\n* @example\n* import array2iterator from '@stdlib/array/to-iterator';\n*\n* var it1 = array2iterator( [ 1.0, 5.0 ] );\n* var it2 = array2iterator( [ 3.0, 4.0 ] );\n*\n* var iter = iterSubtract( it1, it2 );\n*\n* var v = iter.next().value;\n* // returns -2.0\n*\n* v = iter.next().value;\n* // returns 1.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterSubtract() {\n\tvar iterators;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar FLG;\n\tvar i;\n\n\tniter = arguments.length;\n\tif ( niter < 2 ) {\n\t\tthrow new Error( 'insufficient arguments. Must provide two or more iterators.' );\n\t}\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\ti = 0;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar s;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( types[ 0 ] ) {\n\t\t\tv = iterators[ 0 ].next();\n\t\t\tif ( v.done ) {\n\t\t\t\tFLG = true;\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\ts = v.value;\n\t\t\t} else {\n\t\t\t\ts = NaN;\n\t\t\t}\n\t\t} else {\n\t\t\ts = iterators[ 0 ];\n\t\t}\n\t\tfor ( i = 1; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\ts -= v.value;\n\t\t\t\t} else {\n\t\t\t\t\ts = NaN;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts -= iterators[ i ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'value': s,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\treturn iterSubtract.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterSubtract;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport { isPrimitive as isFinite } from '@stdlib/assert/is-finite'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar returns = [\n\t'terms',\n\t'convergents',\n\t'*'\n];\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - maximum number of iterations\n* @param {PositiveNumber} [options.tol] - tolerance at which to terminate further evaluation of the continued fraction\n* @param {string} [options.returns] - specifies the type of result to return (must be one of `'terms'`, `'convergents'`, or `'*'`)\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'tol' ) ) {\n\t\topts.tol = options.tol;\n\t\tif ( !isFinite( options.tol ) || options.tol <= 0.0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a positive finite number. Option: `%s`.', 'tol', options.tol ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'returns' ) ) {\n\t\topts.returns = options.returns;\n\t\tif ( returns.indexOf( options.returns ) === -1 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'returns', returns.join( '\", \"' ), options.returns ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport { isPrimitive as isFinite } from '@stdlib/assert/is-finite'; // eslint-disable-line stdlib/no-redeclare\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\nimport floor from './../../../../base/special/floor';\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\nimport FIFO from '@stdlib/utils/fifo';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar TINY = 1.0e-50;\nvar RESULT_FUNCTION = {\n\t'terms': terms,\n\t'convergents': convergents,\n\t'*': both\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns a continued fraction term result.\n*\n* @private\n* @param {number} term - continued fraction term\n* @param {number} convergent - continued fraction convergent\n* @param {boolean} negative - boolean indicating whether the input value is negative\n* @returns {number} term\n*/\nfunction terms( term, convergent, negative ) {\n\treturn ( negative && term > 0 ) ? -term : term;\n}\n\n/**\n* Returns a continued fraction convergent result.\n*\n* @private\n* @param {number} term - continued fraction term\n* @param {number} convergent - continued fraction convergent\n* @param {boolean} negative - boolean indicating whether the input value is negative\n* @returns {number} convergent\n*/\nfunction convergents( term, convergent, negative ) {\n\treturn ( negative && term > 0 ) ? -convergent : convergent;\n}\n\n/**\n* Returns a result as two-element array consisting of a continued fraction term and its associated convergent.\n*\n* @private\n* @param {number} term - continued fraction term\n* @param {number} convergent - continued fraction convergent\n* @param {boolean} negative - boolean indicating whether the input value is negative\n* @returns {Array} result\n*/\nfunction both( term, convergent, negative ) {\n\treturn ( negative && term > 0 ) ? [ -term, -convergent ] : [ term, convergent ]; // eslint-disable-line max-len\n}\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a list of all continued fraction terms which can be obtained given the precision of `x`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {number} x - input value\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=1e308] - maximum number of iterations\n* @param {PositiveNumber} [options.tol] - tolerance at which to terminate further evaluation of the continued fraction\n* @param {string} [options.returns='terms'] - specifies the type of result to return (must be one of `'terms'`, `'convergents'`, or `'*'`)\n* @throws {TypeError} first argument must be a finite number\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterContinuedFractionSeq( 3.245 );\n*\n* var v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 12\n*\n* v = iter.next().value;\n* // returns 4\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction iterContinuedFractionSeq( x, options ) {\n\tvar result;\n\tvar delta;\n\tvar orig;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar neg;\n\tvar bi;\n\tvar fi;\n\tvar Ci;\n\tvar Di;\n\tvar q;\n\tvar v;\n\tvar r;\n\tvar i;\n\n\tif ( !isFinite( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a finite number. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'iter': 1e308,\n\t\t'tol': EPS,\n\t\t'returns': 'terms'\n\t};\n\tif ( arguments.length > 1 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tresult = RESULT_FUNCTION[ opts.returns ];\n\tFLG = 0;\n\torig = x;\n\n\t// If `x < 0`, we choose to negate the terms (i.e., [b0; b1, b2, ..., bn] => [-b0; -b1, -b2, ..., -bn]), thus allowing the evaluation of those terms to return the input value. This differs from an alternative approach of having only a negative `b0` and the rest `{b1, ..., bn}` be positive. When doing the latter, floating-point rounding error can prevent recovering the original value...\n\tif ( x < 0 ) {\n\t\tneg = true;\n\t\tx = -x;\n\t} else {\n\t\tneg = false;\n\t}\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Continued fractions may not be unique (e.g., [b0; b1, ..., bn, 1] = [b0; b1, ..., bn+1]). Accordingly, in order to ensure we return a canonical representation (i.e., the shorter representation), returned values must lag by two terms, as we'll need to peek ahead to determine if we need to canonicalize before returning the last term. In which case, let's create a FIFO queue for storing terms and their associated convergents...\n\tq = new FIFO();\n\n\t// Extract the integer part of the provided value:\n\tbi = floor( x );\n\tq.push( [ bi, bi ] ); // b0 is both the first term and the first convergent\n\tif ( bi === x ) {\n\t\t// We've been provided an integer value, so no continued fractions to compute...\n\t\tFLG = 1;\n\t\treturn iter;\n\t}\n\t// For `0 < x < 1`, leverage the fact that continued fraction representations of a positive rational number and its reciprocal are identical, except for shifting one place to the right (i.e., [b0; b1, b1, ..., bn] and [0; b0, b1, b2, ..., bn] are reciprocals)...\n\tif ( bi === 0 ) {\n\t\tx = 1.0 / x;\n\t\tbi = floor( x );\n\t\tq.push( [ bi, 1.0/bi ] );\n\t\tif ( bi === x ) {\n\t\t\t// No more continued fractions to compute...\n\t\t\tFLG = 1;\n\t\t\treturn iter;\n\t\t}\n\t}\n\t// Compute the next term of the continued fraction...\n\tr = x - bi;\n\tv = 1.0 / r;\n\n\t// Initialize parameters of the modified Lentz's algorithm...\n\tfi = bi;\n\tCi = fi;\n\tDi = 0.0;\n\n\t// Compute the next two terms:\n\tq.push( nextTerm() );\n\tq.push( nextTerm() );\n\n\treturn iter;\n\n\t/**\n\t* Computes the next term of the continued fraction.\n\t*\n\t* @private\n\t* @returns {number} next term\n\t*/\n\tfunction nextTerm() {\n\t\tvar fj = fi;\n\n\t\t// Compute the next term of the continued fraction...\n\t\tbi = floor( v );\n\t\tr = v - bi;\n\t\tv = 1.0 / r;\n\n\t\t// Use the modified Lentz's algorithm to find the next convergent...\n\t\tDi += bi; // b_j + a_j*D_{j-1}, where a_j = 1.0 for all j\n\t\tif ( Di === 0.0 ) {\n\t\t\tDi = TINY;\n\t\t}\n\t\tCi = bi + ( 1.0/Ci ); // b_j + a_j/C_{j-1}, where a_j = 1.0 for all j\n\t\tif ( Ci === 0.0 ) {\n\t\t\tCi = TINY;\n\t\t}\n\t\tDi = 1.0 / Di;\n\t\tdelta = Ci * Di;\n\t\tfi *= delta;\n\n\t\t// Check whether we can terminate computation...\n\t\tif ( abs( delta - 1.0 ) <= opts.tol ) {\n\t\t\tFLG = 1;\n\t\t\tif ( fj === fi ) {\n\t\t\t\t// Return a sentinel value to indicate that the last term did not improve the approximation:\n\t\t\t\treturn [ -1, fi ];\n\t\t\t}\n\t\t}\n\t\treturn [ bi, fi ];\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar item;\n\t\tvar term;\n\t\tvar f;\n\n\t\ti += 1;\n\t\tif ( FLG > 0 ) {\n\t\t\tif ( FLG === 1 && q.length > 0 ) {\n\t\t\t\titem = q.pop();\n\t\t\t\tterm = item[ 0 ];\n\t\t\t\tf = item[ 1 ];\n\t\t\t\tif ( term === -1 ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'done': true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// Check whether we need to adjust the current term to ensure canonical representation...\n\t\t\t\titem = q.first();\n\t\t\t\tif ( q.length === 2 && item[ 0 ] === 1 ) {\n\t\t\t\t\tterm += 1;\n\t\t\t\t\tf = item[ 1 ];\n\t\t\t\t\tq.clear();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\t'value': result( term, f, neg ),\n\t\t\t\t\t'done': false\n\t\t\t\t};\n\t\t\t}\n\t\t\tFLG = 2;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === opts.iter ) {\n\t\t\titem = q.pop();\n\t\t\tterm = item[ 0 ];\n\t\t\tf = item[ 1 ];\n\n\t\t\t// Check whether we need to adjust the final term to ensure canonical representation...\n\t\t\titem = q.first();\n\t\t\tif ( item[ 0 ] === 1 ) {\n\t\t\t\tterm += 1;\n\t\t\t\tf = item[ 1 ];\n\t\t\t}\n\t\t\tq.clear();\n\t\t\tFLG = 2;\n\t\t\treturn {\n\t\t\t\t'value': result( term, f, neg ),\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\titem = q.push( nextTerm() ).pop();\n\t\treturn {\n\t\t\t'value': result( item[ 0 ], item[ 1 ], neg ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = 2;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterContinuedFractionSeq( orig, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterContinuedFractionSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = FLOAT64_MAX_SAFE_INTEGER * 2;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates an interleaved integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=18014398509481984] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns -1\n*\n* // ...\n*/\nfunction iterIntegersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar sgn;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tsgn = -1;\n\ti = 0;\n\tj = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\treturn {\n\t\t\t\t'value': 0,\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\t// Increment every other iteration...\n\t\tif ( sgn < 0 ) {\n\t\t\tj += 1;\n\t\t}\n\t\tsgn *= -1;\n\t\treturn {\n\t\t\t'value': sgn * j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = (FLOAT64_MAX_SAFE_INTEGER+1) / 2;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of negative even integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370496] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNegativeEvenIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns -2\n*\n* v = iter.next().value;\n* // returns -4\n*\n* v = iter.next().value;\n* // returns -6\n*\n* // ...\n*/\nfunction iterNegativeEvenIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj -= 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNegativeEvenIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNegativeEvenIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = (FLOAT64_MAX_SAFE_INTEGER+1) / 2;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of negative odd integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370496] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNegativeOddIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns -1\n*\n* v = iter.next().value;\n* // returns -3\n*\n* v = iter.next().value;\n* // returns -5\n*\n* // ...\n*/\nfunction iterNegativeOddIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = 1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj -= 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNegativeOddIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNegativeOddIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = ((FLOAT64_MAX_SAFE_INTEGER+1) / 2) + 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of nonnegative even integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370497] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonNegativeEvenIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 4\n*\n* // ...\n*/\nfunction iterNonNegativeEvenIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonNegativeEvenIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonNegativeEvenIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = FLOAT64_MAX_SAFE_INTEGER + 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a nonnegative integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740992] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonNegativeIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\nfunction iterNonNegativeIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonNegativeIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonNegativeIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = ((FLOAT64_MAX_SAFE_INTEGER+1) / 2) + 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of nonpositive even integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370497] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonPositiveEvenIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns -2\n*\n* v = iter.next().value;\n* // returns -4\n*\n* // ...\n*/\nfunction iterNonPositiveEvenIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = 2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj -= 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonPositiveEvenIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonPositiveEvenIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = FLOAT64_MAX_SAFE_INTEGER + 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a nonpositive integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740992] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonPositiveIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns -1\n*\n* v = iter.next().value;\n* // returns -2\n*\n* // ...\n*/\nfunction iterNonPositiveIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = 1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj -= 1;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonPositiveIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonPositiveIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = (FLOAT64_MAX_SAFE_INTEGER+1) / 2;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of positive even integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370496] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterPositiveEvenIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 6\n*\n* // ...\n*/\nfunction iterPositiveEvenIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterPositiveEvenIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterPositiveEvenIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = (FLOAT64_MAX_SAFE_INTEGER+1) / 2;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of positive odd integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=4503599627370496] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterPositiveOddIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 5\n*\n* // ...\n*/\nfunction iterPositiveOddIntegersSeq( options ) { // eslint-disable-line id-length\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tj = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\treturn {\n\t\t\t'value': j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterPositiveOddIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterPositiveOddIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name iterCompositesSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/composites}\n*/\nimport iterCompositesSeq from './../../../iter/sequences/composites';\nsetReadOnly( ns, 'iterCompositesSeq', iterCompositesSeq );\n\n/**\n* @name iterContinuedFractionSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/continued-fraction}\n*/\nimport iterContinuedFractionSeq from './../../../iter/sequences/continued-fraction';\nsetReadOnly( ns, 'iterContinuedFractionSeq', iterContinuedFractionSeq );\n\n/**\n* @name iterCubesSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/cubes}\n*/\nimport iterCubesSeq from './../../../iter/sequences/cubes';\nsetReadOnly( ns, 'iterCubesSeq', iterCubesSeq );\n\n/**\n* @name iterEvenIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/even-integers}\n*/\nimport iterEvenIntegersSeq from './../../../iter/sequences/even-integers';\nsetReadOnly( ns, 'iterEvenIntegersSeq', iterEvenIntegersSeq );\n\n/**\n* @name iterFactorialsSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/factorials}\n*/\nimport iterFactorialsSeq from './../../../iter/sequences/factorials';\nsetReadOnly( ns, 'iterFactorialsSeq', iterFactorialsSeq );\n\n/**\n* @name iterFibonacciSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/fibonacci}\n*/\nimport iterFibonacciSeq from './../../../iter/sequences/fibonacci';\nsetReadOnly( ns, 'iterFibonacciSeq', iterFibonacciSeq );\n\n/**\n* @name iterFifthPowersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/fifth-powers}\n*/\nimport iterFifthPowersSeq from './../../../iter/sequences/fifth-powers';\nsetReadOnly( ns, 'iterFifthPowersSeq', iterFifthPowersSeq );\n\n/**\n* @name iterFourthPowersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/fourth-powers}\n*/\nimport iterFourthPowersSeq from './../../../iter/sequences/fourth-powers';\nsetReadOnly( ns, 'iterFourthPowersSeq', iterFourthPowersSeq );\n\n/**\n* @name iterIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/integers}\n*/\nimport iterIntegersSeq from './../../../iter/sequences/integers';\nsetReadOnly( ns, 'iterIntegersSeq', iterIntegersSeq );\n\n/**\n* @name iterLucasSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/lucas}\n*/\nimport iterLucasSeq from './../../../iter/sequences/lucas';\nsetReadOnly( ns, 'iterLucasSeq', iterLucasSeq );\n\n/**\n* @name iterNegaFibonacciSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/negafibonacci}\n*/\nimport iterNegaFibonacciSeq from './../../../iter/sequences/negafibonacci';\nsetReadOnly( ns, 'iterNegaFibonacciSeq', iterNegaFibonacciSeq );\n\n/**\n* @name iterNegaLucasSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/negalucas}\n*/\nimport iterNegaLucasSeq from './../../../iter/sequences/negalucas';\nsetReadOnly( ns, 'iterNegaLucasSeq', iterNegaLucasSeq );\n\n/**\n* @name iterNegativeEvenIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/negative-even-integers}\n*/\nimport iterNegativeEvenIntegersSeq from './../../../iter/sequences/negative-even-integers';\nsetReadOnly( ns, 'iterNegativeEvenIntegersSeq', iterNegativeEvenIntegersSeq );\n\n/**\n* @name iterNegativeIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/negative-integers}\n*/\nimport iterNegativeIntegersSeq from './../../../iter/sequences/negative-integers';\nsetReadOnly( ns, 'iterNegativeIntegersSeq', iterNegativeIntegersSeq );\n\n/**\n* @name iterNegativeOddIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/negative-odd-integers}\n*/\nimport iterNegativeOddIntegersSeq from './../../../iter/sequences/negative-odd-integers';\nsetReadOnly( ns, 'iterNegativeOddIntegersSeq', iterNegativeOddIntegersSeq );\n\n/**\n* @name iterNonFibonacciSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonfibonacci}\n*/\nimport iterNonFibonacciSeq from './../../../iter/sequences/nonfibonacci';\nsetReadOnly( ns, 'iterNonFibonacciSeq', iterNonFibonacciSeq );\n\n/**\n* @name iterNonNegativeEvenIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonnegative-even-integers}\n*/\nimport iterNonNegativeEvenIntegersSeq from './../../../iter/sequences/nonnegative-even-integers';\nsetReadOnly( ns, 'iterNonNegativeEvenIntegersSeq', iterNonNegativeEvenIntegersSeq );\n\n/**\n* @name iterNonNegativeIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonnegative-integers}\n*/\nimport iterNonNegativeIntegersSeq from './../../../iter/sequences/nonnegative-integers';\nsetReadOnly( ns, 'iterNonNegativeIntegersSeq', iterNonNegativeIntegersSeq );\n\n/**\n* @name iterNonPositiveEvenIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonpositive-even-integers}\n*/\nimport iterNonPositiveEvenIntegersSeq from './../../../iter/sequences/nonpositive-even-integers';\nsetReadOnly( ns, 'iterNonPositiveEvenIntegersSeq', iterNonPositiveEvenIntegersSeq );\n\n/**\n* @name iterNonPositiveIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonpositive-integers}\n*/\nimport iterNonPositiveIntegersSeq from './../../../iter/sequences/nonpositive-integers';\nsetReadOnly( ns, 'iterNonPositiveIntegersSeq', iterNonPositiveIntegersSeq );\n\n/**\n* @name iterNonSquaresSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/nonsquares}\n*/\nimport iterNonSquaresSeq from './../../../iter/sequences/nonsquares';\nsetReadOnly( ns, 'iterNonSquaresSeq', iterNonSquaresSeq );\n\n/**\n* @name iterOddIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/odd-integers}\n*/\nimport iterOddIntegersSeq from './../../../iter/sequences/odd-integers';\nsetReadOnly( ns, 'iterOddIntegersSeq', iterOddIntegersSeq );\n\n/**\n* @name iterPositiveEvenIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/positive-even-integers}\n*/\nimport iterPositiveEvenIntegersSeq from './../../../iter/sequences/positive-even-integers';\nsetReadOnly( ns, 'iterPositiveEvenIntegersSeq', iterPositiveEvenIntegersSeq );\n\n/**\n* @name iterPositiveIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/positive-integers}\n*/\nimport iterPositiveIntegersSeq from './../../../iter/sequences/positive-integers';\nsetReadOnly( ns, 'iterPositiveIntegersSeq', iterPositiveIntegersSeq );\n\n/**\n* @name iterPositiveOddIntegersSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/positive-odd-integers}\n*/\nimport iterPositiveOddIntegersSeq from './../../../iter/sequences/positive-odd-integers';\nsetReadOnly( ns, 'iterPositiveOddIntegersSeq', iterPositiveOddIntegersSeq );\n\n/**\n* @name iterPrimesSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/primes}\n*/\nimport iterPrimesSeq from './../../../iter/sequences/primes';\nsetReadOnly( ns, 'iterPrimesSeq', iterPrimesSeq );\n\n/**\n* @name iterSquaredTriangularSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/squared-triangular}\n*/\nimport iterSquaredTriangularSeq from './../../../iter/sequences/squared-triangular';\nsetReadOnly( ns, 'iterSquaredTriangularSeq', iterSquaredTriangularSeq );\n\n/**\n* @name iterSquaresSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/squares}\n*/\nimport iterSquaresSeq from './../../../iter/sequences/squares';\nsetReadOnly( ns, 'iterSquaresSeq', iterSquaresSeq );\n\n/**\n* @name iterTriangularSeq\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/sequences/triangular}\n*/\nimport iterTriangularSeq from './../../../iter/sequences/triangular';\nsetReadOnly( ns, 'iterTriangularSeq', iterTriangularSeq );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which invokes a unary function accepting a single numeric argument for each iterated value.\n*\n* ## Notes\n*\n* - When invoked, the input function is provided one argument:\n*\n* - `value`: iterated value\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @param {Function} fcn - function to invoke\n* @param {Options} [options] - options\n* @param {*} [options.invalid=NaN] - return value when an input iterator yields a non-numeric value\n* @throws {TypeError} first argument must be an iterator protocol-compliant object\n* @throws {TypeError} second argument must be a function\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n* import sin from '@stdlib/math/base/special/sin';\n*\n* var iter = iterMap( randu(), sin );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterMap( iterator, fcn, options ) {\n\tvar opts;\n\tvar iter;\n\tvar err;\n\tvar FLG;\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.', iterator ) );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\topts = {\n\t\t'invalid': NaN\n\t};\n\tif ( arguments.length > 2 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and the provided iterator is iterable, make the iterator iterable:\n\tif ( iteratorSymbol && isFunction( iterator[ iteratorSymbol ] ) ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar v;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = iterator.next();\n\t\tif ( v.done ) {\n\t\t\tFLG = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn {\n\t\t\t'value': ( isNumber( v.value ) ) ? fcn( v.value ) : opts.invalid,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterMap( iterator[ iteratorSymbol ](), fcn, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterMap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {*} [options.invalid] - return value when an input iterator yields a non-numeric value\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'invalid': NaN\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'invalid' ) ) {\n\t\topts.invalid = options.invalid;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which invokes a binary function accepting numeric arguments for each iterated value.\n*\n* ## Notes\n*\n* - When invoked, the input function is provided two arguments:\n*\n* - `x`: iterated value from first input iterator\n* - `y`: iterated value from second input iterator\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n*\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n*\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n*\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {Iterator} iter1 - second input iterator\n* @param {Function} fcn - function to invoke\n* @param {Options} [options] - options\n* @param {*} [options.invalid=NaN] - return value when an input iterator yields a non-numeric value\n* @throws {TypeError} first argument must be an iterator protocol-compliant object\n* @throws {TypeError} second argument must be an iterator protocol-compliant object\n* @throws {TypeError} third argument must be a function\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n* import copysign from '@stdlib/math/base/special/copysign';\n*\n* var iter = iterMap2( randu(), randu(), copysign );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterMap2( iter0, iter1, fcn, options ) {\n\tvar iterators;\n\tvar values;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar opts;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\tniter = 2;\n\tvalues = [ 0.0, 0.0 ];\n\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\topts = {\n\t\t'invalid': NaN\n\t};\n\tif ( arguments.length > 3 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar err;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\tvalues[ i ] = v.value;\n\t\t\t\t} else {\n\t\t\t\t\terr = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalues[ i ] = iterators[ i ];\n\t\t\t}\n\t\t}\n\t\tif ( err ) {\n\t\t\treturn {\n\t\t\t\t'value': opts.invalid,\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn( values[ 0 ], values[ 1 ] ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\targs.push( fcn, opts );\n\t\treturn iterMap2.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterMap2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {*} [options.invalid] - return value when an input iterator yields a non-numeric value\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'invalid': NaN\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'invalid' ) ) {\n\t\topts.invalid = options.invalid;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport isComposite from './../../../../base/assert/is-composite';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 1e308;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of composite numbers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=1e308] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterCompositesSeq();\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 6\n*\n* v = iter.next().value;\n* // returns 8\n*\n* // ...\n*/\nfunction iterCompositesSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar n;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tn = 3;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tn += 1;\n\t\twhile ( isComposite( n ) === false ) {\n\t\t\tn += 1;\n\t\t}\n\t\treturn {\n\t\t\t'value': n,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterCompositesSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterCompositesSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 208063; // floor(cbrt(FLOAT64_MAX_SAFE_INTEGER))\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of cubes.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=208063] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterCubesSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 8\n*\n* // ...\n*/\nfunction iterCubesSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i * i * i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterCubesSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterCubesSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates an interleaved sequence of even integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740992] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterEvenIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns -2\n*\n* // ...\n*/\nfunction iterEvenIntegersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar sgn;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': FLOAT64_MAX_SAFE_INTEGER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tsgn = -1;\n\ti = 0;\n\tj = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\treturn {\n\t\t\t\t'value': 0,\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\t// Increment every other iteration...\n\t\tif ( sgn < 0 ) {\n\t\t\tj += 2;\n\t\t}\n\t\tsgn *= -1;\n\t\treturn {\n\t\t\t'value': sgn * j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterEvenIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterEvenIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport factorial from './../../../../base/special/factorial';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 1e308;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of factorials.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=1e308] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterFactorialsSeq();\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\nfunction iterFactorialsSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': factorial( i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterFactorialsSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterFactorialsSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar F0 = 0;\nvar F1 = 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a Fibonacci sequence.\n*\n* ## Notes\n*\n* - The returned iterator can only generate the first `79` Fibonacci numbers, as larger Fibonacci numbers cannot be safely represented in double-precision floating-point format.\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=79] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} `iter` option must be less than or equal to `79`\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterFibonacciSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 1\n*\n* // ...\n*/\nfunction iterFibonacciSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar f1;\n\tvar f2;\n\tvar f;\n\tvar i;\n\n\topts = {\n\t\t'iter': 79\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tf1 = F0;\n\tf2 = F1;\n\tf = 0;\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\tf = F0;\n\t\t} else if ( i === 2 ) {\n\t\t\tf = F1;\n\t\t} else {\n\t\t\tf = f1 + f2;\n\t\t\tf1 = f2;\n\t\t\tf2 = f;\n\t\t}\n\t\treturn {\n\t\t\t'value': f,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterFibonacciSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterFibonacciSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t\tif ( options.iter > 79 ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option must be less than or equal to 79. Option: `%u`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 1552; // floor((FLOAT64_MAX_SAFE_INTEGER)^0.2)\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of fifth powers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9741] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterFifthPowersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 32\n*\n* // ...\n*/\nfunction iterFifthPowersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar v;\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = i * i;\n\t\treturn {\n\t\t\t'value': v * v * i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterFifthPowersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterFifthPowersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 9741; // floor((FLOAT64_MAX_SAFE_INTEGER)^0.25)\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of fourth powers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9741] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterFourthPowersSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 16\n*\n* // ...\n*/\nfunction iterFourthPowersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i * i * i * i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterFourthPowersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterFourthPowersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar L0 = 2;\nvar L1 = 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a Lucas sequence.\n*\n* ## Notes\n*\n* - The returned iterator can only generate the first `77` Lucas numbers, as larger Lucas numbers cannot be safely represented in double-precision floating-point format.\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=77] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} `iter` option must be less than or equal to `77`\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterLucasSeq();\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction iterLucasSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar l1;\n\tvar l2;\n\tvar l;\n\tvar i;\n\n\topts = {\n\t\t'iter': 77\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tl1 = L0;\n\tl2 = L1;\n\tl = 0;\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\tl = L0;\n\t\t} else if ( i === 2 ) {\n\t\t\tl = L1;\n\t\t} else {\n\t\t\tl = l1 + l2;\n\t\t\tl1 = l2;\n\t\t\tl2 = l;\n\t\t}\n\t\treturn {\n\t\t\t'value': l,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterLucasSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterLucasSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t\tif ( options.iter > 77 ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option must be less than or equal to 77. Option: `%u`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar F0 = 0;\nvar F1 = 1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a negaFibonacci sequence.\n*\n* ## Notes\n*\n* - The returned iterator can only generate the first `79` negaFibonacci numbers, as larger negaFibonacci numbers cannot be safely represented in double-precision floating-point format.\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=79] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} `iter` option must be less than or equal to `79`\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNegaFibonacciSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns -1\n*\n* // ...\n*/\nfunction iterNegaFibonacciSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar f1;\n\tvar f2;\n\tvar f;\n\tvar i;\n\n\topts = {\n\t\t'iter': 79\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tf1 = F0;\n\tf2 = F1;\n\tf = 0;\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\tf = F0;\n\t\t} else if ( i === 2 ) {\n\t\t\tf = F1;\n\t\t} else {\n\t\t\tf = f1 - f2;\n\t\t\tf1 = f2;\n\t\t\tf2 = f;\n\t\t}\n\t\treturn {\n\t\t\t'value': f,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNegaFibonacciSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNegaFibonacciSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t\tif ( options.iter > 79 ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option must be less than or equal to 79. Option: `%u`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar L0 = 2;\nvar L1 = -1;\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a negaLucas sequence.\n*\n* ## Notes\n*\n* - The returned iterator can only generate the first `77` negaLucas numbers, as larger negaLucas numbers cannot be safely represented in double-precision floating-point format.\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=77] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} `iter` option must be less than or equal to `77`\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNegaLucasSeq();\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns -1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction iterNegaLucasSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar l1;\n\tvar l2;\n\tvar l;\n\tvar i;\n\n\topts = {\n\t\t'iter': 77\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tl1 = L0;\n\tl2 = L1;\n\tl = 0;\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i === 1 ) {\n\t\t\tl = L0;\n\t\t} else if ( i === 2 ) {\n\t\t\tl = L1;\n\t\t} else {\n\t\t\tl = l1 - l2;\n\t\t\tl1 = l2;\n\t\t\tl2 = l;\n\t\t}\n\t\treturn {\n\t\t\t'value': l,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNegaLucasSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNegaLucasSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t\tif ( options.iter > 77 ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option must be less than or equal to 77. Option: `%u`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a negative integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740991] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNegativeIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns -1\n*\n* v = iter.next().value;\n* // returns -2\n*\n* v = iter.next().value;\n* // returns -3\n*\n* // ...\n*/\nfunction iterNegativeIntegersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': FLOAT64_MAX_SAFE_INTEGER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': -i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNegativeIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNegativeIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport nonfibonacci from './../../../../base/special/nonfibonacci';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a non-Fibonacci integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=1e308] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonFibonacciSeq();\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 6\n*\n* v = iter.next().value;\n* // returns 7\n*\n* // ...\n*/\nfunction iterNonFibonacciSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': 1e308\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': nonfibonacci( i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonFibonacciSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonFibonacciSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport floor from './../../../../base/special/floor';\nimport sqrt from './../../../../base/special/sqrt';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 9007199349647256; // FLOAT64_MAX_SAFE_INTEGER + floor(sqrt(FLOAT64_MAX_SAFE_INTEGER))\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of nonsquares.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199349647256] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterNonSquaresSeq();\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 5\n*\n* // ...\n*/\nfunction iterNonSquaresSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i + floor( 0.5+sqrt(i) ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterNonSquaresSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterNonSquaresSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates an interleaved sequence of odd integers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740992] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterOddIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns -1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction iterOddIntegersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar sgn;\n\tvar i;\n\tvar j;\n\n\topts = {\n\t\t'iter': FLOAT64_MAX_SAFE_INTEGER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tsgn = -1;\n\ti = 0;\n\tj = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\t// Increment every other iteration...\n\t\tif ( sgn < 0 ) {\n\t\t\tj += 2;\n\t\t}\n\t\tsgn *= -1;\n\t\treturn {\n\t\t\t'value': sgn * j,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterOddIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterOddIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport FLOAT64_MAX_SAFE_INTEGER from '@stdlib/constants/float64/max-safe-integer';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a positive integer sequence.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=9007199254740991] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterPositiveIntegersSeq();\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction iterPositiveIntegersSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': FLOAT64_MAX_SAFE_INTEGER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterPositiveIntegersSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterPositiveIntegersSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport isPrime from './../../../../base/assert/is-prime';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 245181918813464; // floor(FLOAT64_MAX_SAFE_INTEGER/ln(FLOAT64_MAX_SAFE_INTEGER)) => see https://en.wikipedia.org/wiki/Prime_number_theorem\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of prime numbers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=245181918813464] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterPrimesSeq();\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 5\n*\n* // ...\n*/\nfunction iterPrimesSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar n;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = 0;\n\tn = 1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i > opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tif ( i < 2 ) {\n\t\t\treturn {\n\t\t\t\t'value': 2,\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\tn += 2;\n\t\twhile ( isPrime( n ) === false ) {\n\t\t\tn += 2;\n\t\t}\n\t\treturn {\n\t\t\t'value': n,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterPrimesSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterPrimesSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 11585; // sqrt(floor(sqrt(FLOAT64_MAX_SAFE_INTEGER*2)))\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of squared triangular numbers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=11585] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterSquaredTriangularSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 9\n*\n* // ...\n*/\nfunction iterSquaredTriangularSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar x;\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tx = (i/2.0)*(i+1);\n\t\treturn {\n\t\t\t'value': x*x,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterSquaredTriangularSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterSquaredTriangularSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 94906265; // floor(sqrt(FLOAT64_MAX_SAFE_INTEGER))\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of squares.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=94906265] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterSquaresSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 4\n*\n* // ...\n*/\nfunction iterSquaresSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i * i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterSquaresSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterSquaresSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar MAX_ITER = 134217727; // floor(sqrt(FLOAT64_MAX_SAFE_INTEGER*2))\n\n\n// MAIN //\n\n/**\n* Returns an iterator which generates a sequence of triangular numbers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator`, the returned iterator is iterable.\n*\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter=134217727] - number of iterations\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = iterTriangularSeq();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction iterTriangularSeq( options ) {\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\topts = {\n\t\t'iter': MAX_ITER\n\t};\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= opts.iter ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': (i/2.0)*(i+1),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn iterTriangularSeq( opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterTriangularSeq;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name iterAbs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/abs}\n*/\nimport iterAbs from './../../../iter/special/abs';\nsetReadOnly( ns, 'iterAbs', iterAbs );\n\n/**\n* @name iterAbs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/abs2}\n*/\nimport iterAbs2 from './../../../iter/special/abs2';\nsetReadOnly( ns, 'iterAbs2', iterAbs2 );\n\n/**\n* @name iterAcos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acos}\n*/\nimport iterAcos from './../../../iter/special/acos';\nsetReadOnly( ns, 'iterAcos', iterAcos );\n\n/**\n* @name iterAcosh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acosh}\n*/\nimport iterAcosh from './../../../iter/special/acosh';\nsetReadOnly( ns, 'iterAcosh', iterAcosh );\n\n/**\n* @name iterAcot\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acot}\n*/\nimport iterAcot from './../../../iter/special/acot';\nsetReadOnly( ns, 'iterAcot', iterAcot );\n\n/**\n* @name iterAcoth\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acoth}\n*/\nimport iterAcoth from './../../../iter/special/acoth';\nsetReadOnly( ns, 'iterAcoth', iterAcoth );\n\n/**\n* @name iterAcovercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acovercos}\n*/\nimport iterAcovercos from './../../../iter/special/acovercos';\nsetReadOnly( ns, 'iterAcovercos', iterAcovercos );\n\n/**\n* @name iterAcoversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/acoversin}\n*/\nimport iterAcoversin from './../../../iter/special/acoversin';\nsetReadOnly( ns, 'iterAcoversin', iterAcoversin );\n\n/**\n* @name iterAhavercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ahavercos}\n*/\nimport iterAhavercos from './../../../iter/special/ahavercos';\nsetReadOnly( ns, 'iterAhavercos', iterAhavercos );\n\n/**\n* @name iterAhaversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ahaversin}\n*/\nimport iterAhaversin from './../../../iter/special/ahaversin';\nsetReadOnly( ns, 'iterAhaversin', iterAhaversin );\n\n/**\n* @name iterAsin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/asin}\n*/\nimport iterAsin from './../../../iter/special/asin';\nsetReadOnly( ns, 'iterAsin', iterAsin );\n\n/**\n* @name iterAsinh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/asinh}\n*/\nimport iterAsinh from './../../../iter/special/asinh';\nsetReadOnly( ns, 'iterAsinh', iterAsinh );\n\n/**\n* @name iterAtan\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/atan}\n*/\nimport iterAtan from './../../../iter/special/atan';\nsetReadOnly( ns, 'iterAtan', iterAtan );\n\n/**\n* @name iterAtan2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/atan2}\n*/\nimport iterAtan2 from './../../../iter/special/atan2';\nsetReadOnly( ns, 'iterAtan2', iterAtan2 );\n\n/**\n* @name iterAtanh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/atanh}\n*/\nimport iterAtanh from './../../../iter/special/atanh';\nsetReadOnly( ns, 'iterAtanh', iterAtanh );\n\n/**\n* @name iterAvercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/avercos}\n*/\nimport iterAvercos from './../../../iter/special/avercos';\nsetReadOnly( ns, 'iterAvercos', iterAvercos );\n\n/**\n* @name iterAversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/aversin}\n*/\nimport iterAversin from './../../../iter/special/aversin';\nsetReadOnly( ns, 'iterAversin', iterAversin );\n\n/**\n* @name iterBesselj0\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/besselj0}\n*/\nimport iterBesselj0 from './../../../iter/special/besselj0';\nsetReadOnly( ns, 'iterBesselj0', iterBesselj0 );\n\n/**\n* @name iterBesselj1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/besselj1}\n*/\nimport iterBesselj1 from './../../../iter/special/besselj1';\nsetReadOnly( ns, 'iterBesselj1', iterBesselj1 );\n\n/**\n* @name iterBessely0\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/bessely0}\n*/\nimport iterBessely0 from './../../../iter/special/bessely0';\nsetReadOnly( ns, 'iterBessely0', iterBessely0 );\n\n/**\n* @name iterBessely1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/bessely1}\n*/\nimport iterBessely1 from './../../../iter/special/bessely1';\nsetReadOnly( ns, 'iterBessely1', iterBessely1 );\n\n/**\n* @name iterBeta\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/beta}\n*/\nimport iterBeta from './../../../iter/special/beta';\nsetReadOnly( ns, 'iterBeta', iterBeta );\n\n/**\n* @name iterBetaln\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/betaln}\n*/\nimport iterBetaln from './../../../iter/special/betaln';\nsetReadOnly( ns, 'iterBetaln', iterBetaln );\n\n/**\n* @name iterBinet\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/binet}\n*/\nimport iterBinet from './../../../iter/special/binet';\nsetReadOnly( ns, 'iterBinet', iterBinet );\n\n/**\n* @name iterCbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/cbrt}\n*/\nimport iterCbrt from './../../../iter/special/cbrt';\nsetReadOnly( ns, 'iterCbrt', iterCbrt );\n\n/**\n* @name iterCeil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ceil}\n*/\nimport iterCeil from './../../../iter/special/ceil';\nsetReadOnly( ns, 'iterCeil', iterCeil );\n\n/**\n* @name iterCeil2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ceil2}\n*/\nimport iterCeil2 from './../../../iter/special/ceil2';\nsetReadOnly( ns, 'iterCeil2', iterCeil2 );\n\n/**\n* @name iterCeil10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ceil10}\n*/\nimport iterCeil10 from './../../../iter/special/ceil10';\nsetReadOnly( ns, 'iterCeil10', iterCeil10 );\n\n/**\n* @name iterCos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/cos}\n*/\nimport iterCos from './../../../iter/special/cos';\nsetReadOnly( ns, 'iterCos', iterCos );\n\n/**\n* @name iterCosh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/cosh}\n*/\nimport iterCosh from './../../../iter/special/cosh';\nsetReadOnly( ns, 'iterCosh', iterCosh );\n\n/**\n* @name iterCosm1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/cosm1}\n*/\nimport iterCosm1 from './../../../iter/special/cosm1';\nsetReadOnly( ns, 'iterCosm1', iterCosm1 );\n\n/**\n* @name iterCospi\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/cospi}\n*/\nimport iterCospi from './../../../iter/special/cospi';\nsetReadOnly( ns, 'iterCospi', iterCospi );\n\n/**\n* @name iterCovercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/covercos}\n*/\nimport iterCovercos from './../../../iter/special/covercos';\nsetReadOnly( ns, 'iterCovercos', iterCovercos );\n\n/**\n* @name iterCoversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/coversin}\n*/\nimport iterCoversin from './../../../iter/special/coversin';\nsetReadOnly( ns, 'iterCoversin', iterCoversin );\n\n/**\n* @name iterDeg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/deg2rad}\n*/\nimport iterDeg2rad from './../../../iter/special/deg2rad';\nsetReadOnly( ns, 'iterDeg2rad', iterDeg2rad );\n\n/**\n* @name iterDigamma\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/digamma}\n*/\nimport iterDigamma from './../../../iter/special/digamma';\nsetReadOnly( ns, 'iterDigamma', iterDigamma );\n\n/**\n* @name iterDiracDelta\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/dirac-delta}\n*/\nimport iterDiracDelta from './../../../iter/special/dirac-delta';\nsetReadOnly( ns, 'iterDiracDelta', iterDiracDelta );\n\n/**\n* @name iterEta\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/dirichlet-eta}\n*/\nimport iterEta from './../../../iter/special/dirichlet-eta';\nsetReadOnly( ns, 'iterEta', iterEta );\n\n/**\n* @name iterEllipe\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ellipe}\n*/\nimport iterEllipe from './../../../iter/special/ellipe';\nsetReadOnly( ns, 'iterEllipe', iterEllipe );\n\n/**\n* @name iterEllipk\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ellipk}\n*/\nimport iterEllipk from './../../../iter/special/ellipk';\nsetReadOnly( ns, 'iterEllipk', iterEllipk );\n\n/**\n* @name iterErf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/erf}\n*/\nimport iterErf from './../../../iter/special/erf';\nsetReadOnly( ns, 'iterErf', iterErf );\n\n/**\n* @name iterErfc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/erfc}\n*/\nimport iterErfc from './../../../iter/special/erfc';\nsetReadOnly( ns, 'iterErfc', iterErfc );\n\n/**\n* @name iterErfcinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/erfcinv}\n*/\nimport iterErfcinv from './../../../iter/special/erfcinv';\nsetReadOnly( ns, 'iterErfcinv', iterErfcinv );\n\n/**\n* @name iterErfinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/erfinv}\n*/\nimport iterErfinv from './../../../iter/special/erfinv';\nsetReadOnly( ns, 'iterErfinv', iterErfinv );\n\n/**\n* @name iterExp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/exp}\n*/\nimport iterExp from './../../../iter/special/exp';\nsetReadOnly( ns, 'iterExp', iterExp );\n\n/**\n* @name iterExp2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/exp2}\n*/\nimport iterExp2 from './../../../iter/special/exp2';\nsetReadOnly( ns, 'iterExp2', iterExp2 );\n\n/**\n* @name iterExp10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/exp10}\n*/\nimport iterExp10 from './../../../iter/special/exp10';\nsetReadOnly( ns, 'iterExp10', iterExp10 );\n\n/**\n* @name iterExpit\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/expit}\n*/\nimport iterExpit from './../../../iter/special/expit';\nsetReadOnly( ns, 'iterExpit', iterExpit );\n\n/**\n* @name iterExpm1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/expm1}\n*/\nimport iterExpm1 from './../../../iter/special/expm1';\nsetReadOnly( ns, 'iterExpm1', iterExpm1 );\n\n/**\n* @name iterExpm1rel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/expm1rel}\n*/\nimport iterExpm1rel from './../../../iter/special/expm1rel';\nsetReadOnly( ns, 'iterExpm1rel', iterExpm1rel );\n\n/**\n* @name iterFactorial\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/factorial}\n*/\nimport iterFactorial from './../../../iter/special/factorial';\nsetReadOnly( ns, 'iterFactorial', iterFactorial );\n\n/**\n* @name iterFactorialln\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/factorialln}\n*/\nimport iterFactorialln from './../../../iter/special/factorialln';\nsetReadOnly( ns, 'iterFactorialln', iterFactorialln );\n\n/**\n* @name iterFloor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/floor}\n*/\nimport iterFloor from './../../../iter/special/floor';\nsetReadOnly( ns, 'iterFloor', iterFloor );\n\n/**\n* @name iterFloor2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/floor2}\n*/\nimport iterFloor2 from './../../../iter/special/floor2';\nsetReadOnly( ns, 'iterFloor2', iterFloor2 );\n\n/**\n* @name iterFloor10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/floor10}\n*/\nimport iterFloor10 from './../../../iter/special/floor10';\nsetReadOnly( ns, 'iterFloor10', iterFloor10 );\n\n/**\n* @name iterFresnelc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/fresnelc}\n*/\nimport iterFresnelc from './../../../iter/special/fresnelc';\nsetReadOnly( ns, 'iterFresnelc', iterFresnelc );\n\n/**\n* @name iterFresnels\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/fresnels}\n*/\nimport iterFresnels from './../../../iter/special/fresnels';\nsetReadOnly( ns, 'iterFresnels', iterFresnels );\n\n/**\n* @name iterGamma\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/gamma}\n*/\nimport iterGamma from './../../../iter/special/gamma';\nsetReadOnly( ns, 'iterGamma', iterGamma );\n\n/**\n* @name iterGamma1pm1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/gamma1pm1}\n*/\nimport iterGamma1pm1 from './../../../iter/special/gamma1pm1';\nsetReadOnly( ns, 'iterGamma1pm1', iterGamma1pm1 );\n\n/**\n* @name iterGammaln\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/gammaln}\n*/\nimport iterGammaln from './../../../iter/special/gammaln';\nsetReadOnly( ns, 'iterGammaln', iterGammaln );\n\n/**\n* @name iterHacovercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/hacovercos}\n*/\nimport iterHacovercos from './../../../iter/special/hacovercos';\nsetReadOnly( ns, 'iterHacovercos', iterHacovercos );\n\n/**\n* @name iterHacoversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/hacoversin}\n*/\nimport iterHacoversin from './../../../iter/special/hacoversin';\nsetReadOnly( ns, 'iterHacoversin', iterHacoversin );\n\n/**\n* @name iterHavercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/havercos}\n*/\nimport iterHavercos from './../../../iter/special/havercos';\nsetReadOnly( ns, 'iterHavercos', iterHavercos );\n\n/**\n* @name iterHaversin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/haversin}\n*/\nimport iterHaversin from './../../../iter/special/haversin';\nsetReadOnly( ns, 'iterHaversin', iterHaversin );\n\n/**\n* @name iterInv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/inv}\n*/\nimport iterInv from './../../../iter/special/inv';\nsetReadOnly( ns, 'iterInv', iterInv );\n\n/**\n* @name iterLn\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ln}\n*/\nimport iterLn from './../../../iter/special/ln';\nsetReadOnly( ns, 'iterLn', iterLn );\n\n/**\n* @name iterLog\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log}\n*/\nimport iterLog from './../../../iter/special/log';\nsetReadOnly( ns, 'iterLog', iterLog );\n\n/**\n* @name iterLog1mexp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log1mexp}\n*/\nimport iterLog1mexp from './../../../iter/special/log1mexp';\nsetReadOnly( ns, 'iterLog1mexp', iterLog1mexp );\n\n/**\n* @name iterLog1p\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log1p}\n*/\nimport iterLog1p from './../../../iter/special/log1p';\nsetReadOnly( ns, 'iterLog1p', iterLog1p );\n\n/**\n* @name iterLog1pexp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log1pexp}\n*/\nimport iterLog1pexp from './../../../iter/special/log1pexp';\nsetReadOnly( ns, 'iterLog1pexp', iterLog1pexp );\n\n/**\n* @name iterLog2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log2}\n*/\nimport iterLog2 from './../../../iter/special/log2';\nsetReadOnly( ns, 'iterLog2', iterLog2 );\n\n/**\n* @name iterLog10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/log10}\n*/\nimport iterLog10 from './../../../iter/special/log10';\nsetReadOnly( ns, 'iterLog10', iterLog10 );\n\n/**\n* @name iterLogit\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/logit}\n*/\nimport iterLogit from './../../../iter/special/logit';\nsetReadOnly( ns, 'iterLogit', iterLogit );\n\n/**\n* @name iterPow\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/pow}\n*/\nimport iterPow from './../../../iter/special/pow';\nsetReadOnly( ns, 'iterPow', iterPow );\n\n/**\n* @name iterRad2deg\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/rad2deg}\n*/\nimport iterRad2deg from './../../../iter/special/rad2deg';\nsetReadOnly( ns, 'iterRad2deg', iterRad2deg );\n\n/**\n* @name iterRamp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/ramp}\n*/\nimport iterRamp from './../../../iter/special/ramp';\nsetReadOnly( ns, 'iterRamp', iterRamp );\n\n/**\n* @name iterZeta\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/riemann-zeta}\n*/\nimport iterZeta from './../../../iter/special/riemann-zeta';\nsetReadOnly( ns, 'iterZeta', iterZeta );\n\n/**\n* @name iterRound\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/round}\n*/\nimport iterRound from './../../../iter/special/round';\nsetReadOnly( ns, 'iterRound', iterRound );\n\n/**\n* @name iterRound2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/round2}\n*/\nimport iterRound2 from './../../../iter/special/round2';\nsetReadOnly( ns, 'iterRound2', iterRound2 );\n\n/**\n* @name iterRound10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/round10}\n*/\nimport iterRound10 from './../../../iter/special/round10';\nsetReadOnly( ns, 'iterRound10', iterRound10 );\n\n/**\n* @name iterRsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/rsqrt}\n*/\nimport iterRsqrt from './../../../iter/special/rsqrt';\nsetReadOnly( ns, 'iterRsqrt', iterRsqrt );\n\n/**\n* @name iterSignum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/signum}\n*/\nimport iterSignum from './../../../iter/special/signum';\nsetReadOnly( ns, 'iterSignum', iterSignum );\n\n/**\n* @name iterSin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sin}\n*/\nimport iterSin from './../../../iter/special/sin';\nsetReadOnly( ns, 'iterSin', iterSin );\n\n/**\n* @name iterSinc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sinc}\n*/\nimport iterSinc from './../../../iter/special/sinc';\nsetReadOnly( ns, 'iterSinc', iterSinc );\n\n/**\n* @name iterSinh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sinh}\n*/\nimport iterSinh from './../../../iter/special/sinh';\nsetReadOnly( ns, 'iterSinh', iterSinh );\n\n/**\n* @name iterSinpi\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sinpi}\n*/\nimport iterSinpi from './../../../iter/special/sinpi';\nsetReadOnly( ns, 'iterSinpi', iterSinpi );\n\n/**\n* @name iterSpence\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/spence}\n*/\nimport iterSpence from './../../../iter/special/spence';\nsetReadOnly( ns, 'iterSpence', iterSpence );\n\n/**\n* @name iterSqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sqrt}\n*/\nimport iterSqrt from './../../../iter/special/sqrt';\nsetReadOnly( ns, 'iterSqrt', iterSqrt );\n\n/**\n* @name iterSqrt1pm1\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/sqrt1pm1}\n*/\nimport iterSqrt1pm1 from './../../../iter/special/sqrt1pm1';\nsetReadOnly( ns, 'iterSqrt1pm1', iterSqrt1pm1 );\n\n/**\n* @name iterTan\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/tan}\n*/\nimport iterTan from './../../../iter/special/tan';\nsetReadOnly( ns, 'iterTan', iterTan );\n\n/**\n* @name iterTanh\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/tanh}\n*/\nimport iterTanh from './../../../iter/special/tanh';\nsetReadOnly( ns, 'iterTanh', iterTanh );\n\n/**\n* @name iterTrigamma\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/trigamma}\n*/\nimport iterTrigamma from './../../../iter/special/trigamma';\nsetReadOnly( ns, 'iterTrigamma', iterTrigamma );\n\n/**\n* @name iterTrunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/trunc}\n*/\nimport iterTrunc from './../../../iter/special/trunc';\nsetReadOnly( ns, 'iterTrunc', iterTrunc );\n\n/**\n* @name iterTrunc2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/trunc2}\n*/\nimport iterTrunc2 from './../../../iter/special/trunc2';\nsetReadOnly( ns, 'iterTrunc2', iterTrunc2 );\n\n/**\n* @name iterTrunc10\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/trunc10}\n*/\nimport iterTrunc10 from './../../../iter/special/trunc10';\nsetReadOnly( ns, 'iterTrunc10', iterTrunc10 );\n\n/**\n* @name iterVercos\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/vercos}\n*/\nimport iterVercos from './../../../iter/special/vercos';\nsetReadOnly( ns, 'iterVercos', iterVercos );\n\n/**\n* @name iterVersin\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/special/versin}\n*/\nimport iterVersin from './../../../iter/special/versin';\nsetReadOnly( ns, 'iterVersin', iterVersin );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the absolute value.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterAbs( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAbs( iterator ) {\n\treturn iterMap( iterator, abs );\n}\n\n\n// EXPORTS //\n\nexport default iterAbs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the squared absolute value.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterAbs2( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAbs2( iterator ) {\n\treturn iterMap( iterator, abs2 );\n}\n\n\n// EXPORTS //\n\nexport default iterAbs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the arccosine.\n*\n* ## Notes\n*\n* - The domain of arccosine is restricted to `[-1,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcos( uniform( -1.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcos( iterator ) {\n\treturn iterMap( iterator, acos );\n}\n\n\n// EXPORTS //\n\nexport default iterAcos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acosh from './../../../../base/special/acosh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the hyperbolic arccosine.\n*\n* ## Notes\n*\n* - The domain of hyperbolic arccosine is restricted to `[1,+infinity)`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcosh( uniform( 1.0, 10.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcosh( iterator ) {\n\treturn iterMap( iterator, acosh );\n}\n\n\n// EXPORTS //\n\nexport default iterAcosh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acot from './../../../../base/special/acot';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse cotangent.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcot( uniform( -5.0, 5.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcot( iterator ) {\n\treturn iterMap( iterator, acot );\n}\n\n\n// EXPORTS //\n\nexport default iterAcot;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acoth from './../../../../base/special/acoth';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse hyperbolic cotangent.\n*\n* ## Notes\n*\n* - The domain of inverse hyperbolic cotangent is restricted to `(-inf,-1]` and `[1,inf)`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcoth( uniform( 1.0, 10.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcoth( iterator ) {\n\treturn iterMap( iterator, acoth );\n}\n\n\n// EXPORTS //\n\nexport default iterAcoth;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acovercos from './../../../../base/special/acovercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse coversed cosine.\n*\n* ## Notes\n*\n* - The domain of inverse coversed cosine is restricted to `[-2,0]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcovercos( uniform( -2.0, 0.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcovercos( iterator ) {\n\treturn iterMap( iterator, acovercos );\n}\n\n\n// EXPORTS //\n\nexport default iterAcovercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport acoversin from './../../../../base/special/acoversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse coversed sine.\n*\n* ## Notes\n*\n* - The domain of inverse coversed sine is restricted to `[0,2]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAcoversin( uniform( 0.0, 2.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAcoversin( iterator ) {\n\treturn iterMap( iterator, acoversin );\n}\n\n\n// EXPORTS //\n\nexport default iterAcoversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ahavercos from './../../../../base/special/ahavercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse half-value versed cosine.\n*\n* ## Notes\n*\n* - The domain of inverse half-value versed cosine is restricted to `[0,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAhavercos( uniform( 0.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAhavercos( iterator ) {\n\treturn iterMap( iterator, ahavercos );\n}\n\n\n// EXPORTS //\n\nexport default iterAhavercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ahaversin from './../../../../base/special/ahaversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse half-value versed sine.\n*\n* ## Notes\n*\n* - The domain of inverse half-value versed sine is restricted to `[0,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAhaversin( uniform( 0.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAhaversin( iterator ) {\n\treturn iterMap( iterator, ahaversin );\n}\n\n\n// EXPORTS //\n\nexport default iterAhaversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the arcsine.\n*\n* ## Notes\n*\n* - The domain of arcsine is restricted to `[-1,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAsin( uniform( -1.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAsin( iterator ) {\n\treturn iterMap( iterator, asin );\n}\n\n\n// EXPORTS //\n\nexport default iterAsin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport asinh from './../../../../base/special/asinh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the hyperbolic arcsine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAsinh( uniform( -2.0, 2.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAsinh( iterator ) {\n\treturn iterMap( iterator, asinh );\n}\n\n\n// EXPORTS //\n\nexport default iterAsinh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport atan from './../../../../base/special/atan';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the arctangent.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAtan( uniform( -2.0, 2.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAtan( iterator ) {\n\treturn iterMap( iterator, atan );\n}\n\n\n// EXPORTS //\n\nexport default iterAtan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap2 from './../../../../iter/tools/map2';\nimport atan2 from './../../../../base/special/atan2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)`.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {(Iterator|number)} y - input iterator\n* @param {(Iterator|number)} x - input iterator\n* @throws {TypeError} first argument must be either an iterator protocol-compliant object or a number\n* @throws {TypeError} second argument must be either an iterator protocol-compliant object or a number\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var x = uniform( -2.0, 2.0 );\n* var y = uniform( -2.0, 2.0 );\n*\n* var iter = iterAtan2( y, x );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAtan2( y, x ) {\n\treturn iterMap2( y, x, atan2 );\n}\n\n\n// EXPORTS //\n\nexport default iterAtan2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport atanh from './../../../../base/special/atanh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the hyperbolic arctangent.\n*\n* ## Notes\n*\n* - The domain of hyperbolic arctangent is restricted to `[-1,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAtanh( uniform( -1.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAtanh( iterator ) {\n\treturn iterMap( iterator, atanh );\n}\n\n\n// EXPORTS //\n\nexport default iterAtanh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport avercos from './../../../../base/special/avercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse versed cosine.\n*\n* ## Notes\n*\n* - The domain of inverse versed cosine is restricted to `[-2,0]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAvercos( uniform( -2.0, 0.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAvercos( iterator ) {\n\treturn iterMap( iterator, avercos );\n}\n\n\n// EXPORTS //\n\nexport default iterAvercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport aversin from './../../../../base/special/aversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the inverse versed sine.\n*\n* ## Notes\n*\n* - The domain of inverse versed sine is restricted to `[0,2]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterAversin( uniform( 0.0, 2.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterAversin( iterator ) {\n\treturn iterMap( iterator, aversin );\n}\n\n\n// EXPORTS //\n\nexport default iterAversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport besselj0 from './../../../../base/special/besselj0';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Bessel function of the first kind of order zero.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterBesselj0( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBesselj0( iterator ) {\n\treturn iterMap( iterator, besselj0 );\n}\n\n\n// EXPORTS //\n\nexport default iterBesselj0;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport besselj1 from './../../../../base/special/besselj1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Bessel function of the first kind of order one.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterBesselj1( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBesselj1( iterator ) {\n\treturn iterMap( iterator, besselj1 );\n}\n\n\n// EXPORTS //\n\nexport default iterBesselj1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport bessely0 from './../../../../base/special/bessely0';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Bessel function of the second kind of order zero.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterBessely0( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBessely0( iterator ) {\n\treturn iterMap( iterator, bessely0 );\n}\n\n\n// EXPORTS //\n\nexport default iterBessely0;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport bessely1 from './../../../../base/special/bessely1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Bessel function of the second kind of order one.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterBessely1( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBessely1( iterator ) {\n\treturn iterMap( iterator, bessely1 );\n}\n\n\n// EXPORTS //\n\nexport default iterBessely1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap2 from './../../../../iter/tools/map2';\nimport beta from './../../../../base/special/beta';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the beta function.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {(Iterator|number)} x - input iterator\n* @param {(Iterator|number)} y - input iterator\n* @throws {TypeError} first argument must be either an iterator protocol-compliant object or a number\n* @throws {TypeError} second argument must be either an iterator protocol-compliant object or a number\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var x = uniform( 0.0, 2.0 );\n* var y = uniform( 0.0, 2.0 );\n*\n* var iter = iterBeta( x, y );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBeta( x, y ) {\n\treturn iterMap2( x, y, beta );\n}\n\n\n// EXPORTS //\n\nexport default iterBeta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap2 from './../../../../iter/tools/map2';\nimport betaln from './../../../../base/special/betaln';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of the beta function.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {(Iterator|number)} x - input iterator\n* @param {(Iterator|number)} y - input iterator\n* @throws {TypeError} first argument must be either an iterator protocol-compliant object or a number\n* @throws {TypeError} second argument must be either an iterator protocol-compliant object or a number\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var x = uniform( 0.0, 2.0 );\n* var y = uniform( 0.0, 2.0 );\n*\n* var iter = iterBetaln( x, y );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBetaln( x, y ) {\n\treturn iterMap2( x, y, betaln );\n}\n\n\n// EXPORTS //\n\nexport default iterBetaln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport binet from './../../../../base/special/binet';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates Binet's formula extended to real numbers.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterBinet( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterBinet( iterator ) {\n\treturn iterMap( iterator, binet );\n}\n\n\n// EXPORTS //\n\nexport default iterBinet;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the cube root.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterCbrt( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCbrt( iterator ) {\n\treturn iterMap( iterator, cbrt );\n}\n\n\n// EXPORTS //\n\nexport default iterCbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value toward positive infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterCeil( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCeil( iterator ) {\n\treturn iterMap( iterator, ceil );\n}\n\n\n// EXPORTS //\n\nexport default iterCeil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ceil2 from './../../../../base/special/ceil2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of two toward positive infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCeil2( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCeil2( iterator ) {\n\treturn iterMap( iterator, ceil2 );\n}\n\n\n// EXPORTS //\n\nexport default iterCeil2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ceil10 from './../../../../base/special/ceil10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of 10 toward positive infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCeil10( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCeil10( iterator ) {\n\treturn iterMap( iterator, ceil10 );\n}\n\n\n// EXPORTS //\n\nexport default iterCeil10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterCos( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCos( iterator ) {\n\treturn iterMap( iterator, cos );\n}\n\n\n// EXPORTS //\n\nexport default iterCos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport cosh from './../../../../base/special/cosh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the hyperbolic cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCosh( uniform( -5.0, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCosh( iterator ) {\n\treturn iterMap( iterator, cosh );\n}\n\n\n// EXPORTS //\n\nexport default iterCosh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport cosm1 from './../../../../base/special/cosm1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes `cos(x) - 1`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCosm1( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCosm1( iterator ) {\n\treturn iterMap( iterator, cosm1 );\n}\n\n\n// EXPORTS //\n\nexport default iterCosm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport cospi from './../../../../base/special/cospi';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which computes the cosine of each iterated value times π.\n*\n* ## Notes\n*\n* - Computes `cos(πx)` more accurately than `cos(pi*x)`, especially for large `x`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterCospi( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCospi( iterator ) {\n\treturn iterMap( iterator, cospi );\n}\n\n\n// EXPORTS //\n\nexport default iterCospi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport covercos from './../../../../base/special/covercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the coversed cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCovercos( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCovercos( iterator ) {\n\treturn iterMap( iterator, covercos );\n}\n\n\n// EXPORTS //\n\nexport default iterCovercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport coversin from './../../../../base/special/coversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the coversed sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterCoversin( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterCoversin( iterator ) {\n\treturn iterMap( iterator, coversin );\n}\n\n\n// EXPORTS //\n\nexport default iterCoversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively converts an angle from degrees to radians.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterDeg2rad( uniform( -360.0, 360.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterDeg2rad( iterator ) {\n\treturn iterMap( iterator, deg2rad );\n}\n\n\n// EXPORTS //\n\nexport default iterDeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport digamma from './../../../../base/special/digamma';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the digamma function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterDigamma( uniform( 0.01, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterDigamma( iterator ) {\n\treturn iterMap( iterator, digamma );\n}\n\n\n// EXPORTS //\n\nexport default iterDigamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport diracDelta from './../../../../base/special/dirac-delta';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Dirac delta function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterDiracDelta( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterDiracDelta( iterator ) {\n\treturn iterMap( iterator, diracDelta );\n}\n\n\n// EXPORTS //\n\nexport default iterDiracDelta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport eta from './../../../../base/special/dirichlet-eta';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Dirichlet eta function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterEta( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterEta( iterator ) {\n\treturn iterMap( iterator, eta );\n}\n\n\n// EXPORTS //\n\nexport default iterEta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ellipe from './../../../../base/special/ellipe';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the complete elliptic integral of the second kind.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterEllipe( uniform( -1.0, 1.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterEllipe( iterator ) {\n\treturn iterMap( iterator, ellipe );\n}\n\n\n// EXPORTS //\n\nexport default iterEllipe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ellipk from './../../../../base/special/ellipk';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the complete elliptic integral of the first kind.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterEllipk( uniform( -1.0, 1.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterEllipk( iterator ) {\n\treturn iterMap( iterator, ellipk );\n}\n\n\n// EXPORTS //\n\nexport default iterEllipk;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport erf from './../../../../base/special/erf';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the error function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterErf( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterErf( iterator ) {\n\treturn iterMap( iterator, erf );\n}\n\n\n// EXPORTS //\n\nexport default iterErf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport erfc from './../../../../base/special/erfc';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the complementary error function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterErfc( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterErfc( iterator ) {\n\treturn iterMap( iterator, erfc );\n}\n\n\n// EXPORTS //\n\nexport default iterErfc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport erfcinv from './../../../../base/special/erfcinv';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the inverse complementary error function.\n*\n* ## Notes\n*\n* - The domain of inverse complementary error function is restricted to `[0,2]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterErfcinv( uniform( 0.0, 2.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterErfcinv( iterator ) {\n\treturn iterMap( iterator, erfcinv );\n}\n\n\n// EXPORTS //\n\nexport default iterErfcinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport erfinv from './../../../../base/special/erfinv';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the inverse error function.\n*\n* ## Notes\n*\n* - The domain of inverse error function is restricted to `[-1,1]`. If an iterated value is outside of the domain, the returned iterator returns `NaN`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterErfinv( uniform( -1.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterErfinv( iterator ) {\n\treturn iterMap( iterator, erfinv );\n}\n\n\n// EXPORTS //\n\nexport default iterErfinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport exp from './../../../../base/special/exp';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural exponential function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterExp( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExp( iterator ) {\n\treturn iterMap( iterator, exp );\n}\n\n\n// EXPORTS //\n\nexport default iterExp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport exp2 from './../../../../base/special/exp2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the base `2` exponential function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterExp2( uniform( -50.0, 50.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExp2( iterator ) {\n\treturn iterMap( iterator, exp2 );\n}\n\n\n// EXPORTS //\n\nexport default iterExp2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport exp10 from './../../../../base/special/exp10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the base `10` exponential function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterExp10( uniform( -50.0, 50.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExp10( iterator ) {\n\treturn iterMap( iterator, exp10 );\n}\n\n\n// EXPORTS //\n\nexport default iterExp10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport expit from './../../../../base/special/expit';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the standard logistic function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterExpit( uniform( 0.0, 1.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExpit( iterator ) {\n\treturn iterMap( iterator, expit );\n}\n\n\n// EXPORTS //\n\nexport default iterExpit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport expm1 from './../../../../base/special/expm1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes `exp(x) - 1`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterExpm1( uniform( -5.0, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExpm1( iterator ) {\n\treturn iterMap( iterator, expm1 );\n}\n\n\n// EXPORTS //\n\nexport default iterExpm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport expm1rel from './../../../../base/special/expm1rel';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the relative error exponential.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterExpm1rel( uniform( -50.0, 50.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterExpm1rel( iterator ) {\n\treturn iterMap( iterator, expm1rel );\n}\n\n\n// EXPORTS //\n\nexport default iterExpm1rel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport factorial from './../../../../base/special/factorial';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the factorial function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterFactorial( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFactorial( iterator ) {\n\treturn iterMap( iterator, factorial );\n}\n\n\n// EXPORTS //\n\nexport default iterFactorial;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport factorialln from './../../../../base/special/factorialln';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of the factorial function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterFactorialln( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFactorialln( iterator ) {\n\treturn iterMap( iterator, factorialln );\n}\n\n\n// EXPORTS //\n\nexport default iterFactorialln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value toward negative infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterFloor( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFloor( iterator ) {\n\treturn iterMap( iterator, floor );\n}\n\n\n// EXPORTS //\n\nexport default iterFloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport floor2 from './../../../../base/special/floor2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of two toward negative infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterFloor2( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFloor2( iterator ) {\n\treturn iterMap( iterator, floor2 );\n}\n\n\n// EXPORTS //\n\nexport default iterFloor2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport floor10 from './../../../../base/special/floor10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of 10 toward negative infinity.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterFloor10( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFloor10( iterator ) {\n\treturn iterMap( iterator, floor10 );\n}\n\n\n// EXPORTS //\n\nexport default iterFloor10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport fresnelc from './../../../../base/special/fresnelc';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the Fresnel integral C(x).\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterFresnelc( uniform( 0.0, 10.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFresnelc( iterator ) {\n\treturn iterMap( iterator, fresnelc );\n}\n\n\n// EXPORTS //\n\nexport default iterFresnelc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport fresnels from './../../../../base/special/fresnels';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the Fresnel integral S(x).\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterFresnels( uniform( 0.0, 10.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterFresnels( iterator ) {\n\treturn iterMap( iterator, fresnels );\n}\n\n\n// EXPORTS //\n\nexport default iterFresnels;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport gamma from './../../../../base/special/gamma';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the gamma function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterGamma( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterGamma( iterator ) {\n\treturn iterMap( iterator, gamma );\n}\n\n\n// EXPORTS //\n\nexport default iterGamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport gamma1pm1 from './../../../../base/special/gamma1pm1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes `gamma(x+1) - 1` without cancellation errors for small `x`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterGamma1pm1( uniform( -5.0, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterGamma1pm1( iterator ) {\n\treturn iterMap( iterator, gamma1pm1 );\n}\n\n\n// EXPORTS //\n\nexport default iterGamma1pm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport gammaln from './../../../../base/special/gammaln';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of the gamma function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterGammaln( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterGammaln( iterator ) {\n\treturn iterMap( iterator, gammaln );\n}\n\n\n// EXPORTS //\n\nexport default iterGammaln;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport hacovercos from './../../../../base/special/hacovercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the half-value coversed cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterHacovercos( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterHacovercos( iterator ) {\n\treturn iterMap( iterator, hacovercos );\n}\n\n\n// EXPORTS //\n\nexport default iterHacovercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport hacoversin from './../../../../base/special/hacoversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the half-value coversed sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterHacoversin( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterHacoversin( iterator ) {\n\treturn iterMap( iterator, hacoversin );\n}\n\n\n// EXPORTS //\n\nexport default iterHacoversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport havercos from './../../../../base/special/havercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the half-value versed cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterHavercos( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterHavercos( iterator ) {\n\treturn iterMap( iterator, havercos );\n}\n\n\n// EXPORTS //\n\nexport default iterHavercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport haversin from './../../../../base/special/haversin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the half-value versed sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterHaversin( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterHaversin( iterator ) {\n\treturn iterMap( iterator, haversin );\n}\n\n\n// EXPORTS //\n\nexport default iterHaversin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport inv from './../../../../base/special/inv';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the multiplicative inverse.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterInv( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterInv( iterator ) {\n\treturn iterMap( iterator, inv );\n}\n\n\n// EXPORTS //\n\nexport default iterInv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ln from './../../../../base/special/ln';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterLn( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLn( iterator ) {\n\treturn iterMap( iterator, ln );\n}\n\n\n// EXPORTS //\n\nexport default iterLn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap2 from './../../../../iter/tools/map2';\nimport log from './../../../../base/special/log';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the base `b` logarithm.\n*\n* ## Notes\n*\n* - For negative `b` or `x` iterated values, the returned iterator returns `NaN`.\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {(Iterator|number)} x - input iterator\n* @param {(Iterator|number)} b - input iterator\n* @throws {TypeError} first argument must be either an iterator protocol-compliant object or a number\n* @throws {TypeError} second argument must be either an iterator protocol-compliant object or a number\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var x = uniform( 0.0, 100.0 );\n* var y = uniform( 0.0, 10.0 );\n*\n* var iter = iterLog( x, y );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog( x, b ) {\n\treturn iterMap2( x, b, log );\n}\n\n\n// EXPORTS //\n\nexport default iterLog;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport log1mexp from './../../../../base/special/log1mexp';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of \\\\( 1-\\exp(-|x|) \\\\).\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLog1mexp( uniform( 0.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog1mexp( iterator ) {\n\treturn iterMap( iterator, log1mexp );\n}\n\n\n// EXPORTS //\n\nexport default iterLog1mexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport log1p from './../../../../base/special/log1p';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of `1+x`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLog1p( uniform( 0.0, 1000.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog1p( iterator ) {\n\treturn iterMap( iterator, log1p );\n}\n\n\n// EXPORTS //\n\nexport default iterLog1p;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport log1pexp from './../../../../base/special/log1pexp';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the natural logarithm of \\\\( 1+\\exp(x) \\\\).\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLog1pexp( uniform( 0.0, 1.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog1pexp( iterator ) {\n\treturn iterMap( iterator, log1pexp );\n}\n\n\n// EXPORTS //\n\nexport default iterLog1pexp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport log2 from './../../../../base/special/log2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the binary logarithm.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLog2( uniform( 0.0, 1000.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog2( iterator ) {\n\treturn iterMap( iterator, log2 );\n}\n\n\n// EXPORTS //\n\nexport default iterLog2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport log10 from './../../../../base/special/log10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the common logarithm (logarithm with base 10).\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLog10( uniform( 0.0, 1000.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLog10( iterator ) {\n\treturn iterMap( iterator, log10 );\n}\n\n\n// EXPORTS //\n\nexport default iterLog10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport logit from './../../../../base/special/logit';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the logit function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterLogit( uniform( 0.0, 1.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterLogit( iterator ) {\n\treturn iterMap( iterator, logit );\n}\n\n\n// EXPORTS //\n\nexport default iterLogit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap2 from './../../../../iter/tools/map2';\nimport pow from './../../../../base/special/pow';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the exponential function.\n*\n* ## Notes\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {(Iterator|number)} base - input iterator\n* @param {(Iterator|number)} exponent - input iterator\n* @throws {TypeError} first argument must be either an iterator protocol-compliant object or a number\n* @throws {TypeError} second argument must be either an iterator protocol-compliant object or a number\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var x = uniform( 0.0, 2.0 );\n* var y = uniform( -2.0, 2.0 );\n*\n* var iter = iterPow( x, y );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterPow( base, exponent ) {\n\treturn iterMap2( base, exponent, pow );\n}\n\n\n// EXPORTS //\n\nexport default iterPow;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport rad2deg from './../../../../base/special/rad2deg';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively converts an angle from radians to degrees.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterRad2deg( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRad2deg( iterator ) {\n\treturn iterMap( iterator, rad2deg );\n}\n\n\n// EXPORTS //\n\nexport default iterRad2deg;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport ramp from './../../../../base/special/ramp';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the ramp function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterRamp( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRamp( iterator ) {\n\treturn iterMap( iterator, ramp );\n}\n\n\n// EXPORTS //\n\nexport default iterRamp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport zeta from './../../../../base/special/riemann-zeta';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the Riemann zeta function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterZeta( uniform( 1.1, 50.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterZeta( iterator ) {\n\treturn iterMap( iterator, zeta );\n}\n\n\n// EXPORTS //\n\nexport default iterZeta;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport round from './../../../../base/special/round';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest integer.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterRound( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRound( iterator ) {\n\treturn iterMap( iterator, round );\n}\n\n\n// EXPORTS //\n\nexport default iterRound;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport round2 from './../../../../base/special/round2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of two on a linear scale.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterRound2( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRound2( iterator ) {\n\treturn iterMap( iterator, round2 );\n}\n\n\n// EXPORTS //\n\nexport default iterRound2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport round10 from './../../../../base/special/round10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of 10 on a linear scale.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterRound10( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRound10( iterator ) {\n\treturn iterMap( iterator, round10 );\n}\n\n\n// EXPORTS //\n\nexport default iterRound10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport rsqrt from './../../../../base/special/rsqrt';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the reciprocal (inverse) square root.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterRsqrt( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterRsqrt( iterator ) {\n\treturn iterMap( iterator, rsqrt );\n}\n\n\n// EXPORTS //\n\nexport default iterRsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport signum from './../../../../base/special/signum';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the signum function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterSignum( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSignum( iterator ) {\n\treturn iterMap( iterator, signum );\n}\n\n\n// EXPORTS //\n\nexport default iterSignum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterSin( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSin( iterator ) {\n\treturn iterMap( iterator, sin );\n}\n\n\n// EXPORTS //\n\nexport default iterSin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sinc from './../../../../base/special/sinc';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the normalized cardinal sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterSinc( uniform( -5.0, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSinc( iterator ) {\n\treturn iterMap( iterator, sinc );\n}\n\n\n// EXPORTS //\n\nexport default iterSinc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sinh from './../../../../base/special/sinh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the hyperbolic sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterSinh( uniform( -5.0, 5.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSinh( iterator ) {\n\treturn iterMap( iterator, sinh );\n}\n\n\n// EXPORTS //\n\nexport default iterSinh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sinpi from './../../../../base/special/sinpi';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which computes the sine of each iterated value times π.\n*\n* ## Notes\n*\n* - Computes `sin(πx)` more accurately than `sin(pi*x)`, especially for large `x`.\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterSinpi( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSinpi( iterator ) {\n\treturn iterMap( iterator, sinpi );\n}\n\n\n// EXPORTS //\n\nexport default iterSinpi;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport spence from './../../../../base/special/spence';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates Spence's function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterSpence( uniform( 0.0, 100.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSpence( iterator ) {\n\treturn iterMap( iterator, spence );\n}\n\n\n// EXPORTS //\n\nexport default iterSpence;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the principal square root.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterSqrt( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSqrt( iterator ) {\n\treturn iterMap( iterator, sqrt );\n}\n\n\n// EXPORTS //\n\nexport default iterSqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport sqrt1pm1 from './../../../../base/special/sqrt1pm1';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes `sqrt(1+x) - 1` more accurately for small `x`.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterSqrt1pm1( uniform( 0.0, 100.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterSqrt1pm1( iterator ) {\n\treturn iterMap( iterator, sqrt1pm1 );\n}\n\n\n// EXPORTS //\n\nexport default iterSqrt1pm1;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport tan from './../../../../base/special/tan';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the tangent.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterTan( uniform( -1.57, 1.57 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTan( iterator ) {\n\treturn iterMap( iterator, tan );\n}\n\n\n// EXPORTS //\n\nexport default iterTan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport tanh from './../../../../base/special/tanh';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the hyperbolic tangent.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterTanh( uniform( -4.0, 4.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTanh( iterator ) {\n\treturn iterMap( iterator, tanh );\n}\n\n\n// EXPORTS //\n\nexport default iterTanh;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport trigamma from './../../../../base/special/trigamma';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively evaluates the trigamma function.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterTrigamma( uniform( 0.01, 50.0 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTrigamma( iterator ) {\n\treturn iterMap( iterator, trigamma );\n}\n\n\n// EXPORTS //\n\nexport default iterTrigamma;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value toward zero.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import randu from '@stdlib/random/iter/randu';\n*\n* var iter = iterTrunc( randu() );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTrunc( iterator ) {\n\treturn iterMap( iterator, trunc );\n}\n\n\n// EXPORTS //\n\nexport default iterTrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport trunc2 from './../../../../base/special/trunc2';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of two toward zero.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterTrunc2( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTrunc2( iterator ) {\n\treturn iterMap( iterator, trunc2 );\n}\n\n\n// EXPORTS //\n\nexport default iterTrunc2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport trunc10 from './../../../../base/special/trunc10';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which rounds each iterated value to the nearest power of 10 toward zero.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterTrunc10( uniform( -100.0, 100.0 ) );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterTrunc10( iterator ) {\n\treturn iterMap( iterator, trunc10 );\n}\n\n\n// EXPORTS //\n\nexport default iterTrunc10;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport vercos from './../../../../base/special/vercos';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the versed cosine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterVercos( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterVercos( iterator ) {\n\treturn iterMap( iterator, vercos );\n}\n\n\n// EXPORTS //\n\nexport default iterVercos;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterMap from './../../../../iter/tools/map';\nimport versin from './../../../../base/special/versin';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iteratively computes the versed sine.\n*\n* ## Notes\n*\n* - If an environment supports `Symbol.iterator` **and** a provided iterator is iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n*\n* var iter = iterVersin( uniform( 0.0, 6.28 ) );\n*\n* var v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* v = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterVersin( iterator ) {\n\treturn iterMap( iterator, versin );\n}\n\n\n// EXPORTS //\n\nexport default iterVersin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name map\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/tools/map}\n*/\nimport map from './../../../iter/tools/map';\nsetReadOnly( ns, 'map', map );\n\n/**\n* @name map2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/tools/map2}\n*/\nimport map2 from './../../../iter/tools/map2';\nsetReadOnly( ns, 'map2', map2 );\n\n/**\n* @name map3\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/tools/map3}\n*/\nimport map3 from './../../../iter/tools/map3';\nsetReadOnly( ns, 'map3', map3 );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport iteratorSymbol from '@stdlib/symbol/iterator';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns an iterator which invokes a ternary function accepting numeric arguments for each iterated value.\n*\n* ## Notes\n*\n* - When invoked, the input function is provided three arguments:\n*\n* - `x`: iterated value from first input iterator\n* - `y`: iterated value from second input iterator\n* - `z`: iterated value from third input iterator\n*\n* - If provided a numeric value as an iterator argument, the value is broadcast as an **infinite** iterator which **always** returns the provided value.\n*\n* - If an iterated value is non-numeric (including `NaN`), the returned iterator returns `NaN`. If non-numeric iterated values are possible, you are advised to provide an iterator which type checks and handles non-numeric values accordingly.\n*\n* - The length of the returned iterator is equal to the length of the shortest provided iterator. In other words, the returned iterator ends once **one** of the provided iterators ends.\n*\n* - If an environment supports `Symbol.iterator` and all provided iterators are iterable, the returned iterator is iterable.\n*\n* @param {Iterator} iter0 - first input iterator\n* @param {Iterator} iter1 - second input iterator\n* @param {Iterator} iter2 - third input iterator\n* @param {Function} fcn - function to invoke\n* @param {Options} [options] - options\n* @param {*} [options.invalid=NaN] - return value when an input iterator yields a non-numeric value\n* @throws {TypeError} first argument must be an iterator protocol-compliant object\n* @throws {TypeError} second argument must be an iterator protocol-compliant object\n* @throws {TypeError} third argument must be an iterator protocol-compliant object\n* @throws {TypeError} fourth argument must be a function\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* import uniform from '@stdlib/random/iter/uniform';\n* import clamp from '@stdlib/math/base/special/clamp';\n*\n* var x = uniform( 0.0, 10.0 );\n* var min = uniform( 0.0, 1.0 );\n* var max = uniform( 9.0, 10.0 );\n*\n* var iter = iterMap3( x, min, max, clamp );\n*\n* var r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* r = iter.next().value;\n* // returns \n*\n* // ...\n*/\nfunction iterMap3( iter0, iter1, iter2, fcn, options ) {\n\tvar iterators;\n\tvar values;\n\tvar types;\n\tvar niter;\n\tvar iter;\n\tvar opts;\n\tvar FLG;\n\tvar err;\n\tvar i;\n\n\tniter = 3;\n\tvalues = [ 0.0, 0.0, 0.0 ];\n\n\titerators = [];\n\ttypes = [];\n\tfor ( i = 0; i < niter; i++ ) {\n\t\titerators.push( arguments[ i ] );\n\t\tif ( isIteratorLike( arguments[ i ] ) ) {\n\t\t\ttypes.push( 1 );\n\t\t} else if ( isNumber( arguments[ i ] ) ) {\n\t\t\ttypes.push( 0 );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator protocol-compliant object or a number. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\topts = {\n\t\t'invalid': NaN\n\t};\n\tif ( arguments.length > 4 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and all provided iterators are iterable, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] && !isFunction( iterators[ i ][ iteratorSymbol ] ) ) { // eslint-disable-line max-len\n\t\t\t\tFLG = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ( !FLG ) {\n\t\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t\t}\n\t}\n\tFLG = false;\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar err;\n\t\tvar v;\n\t\tvar i;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\tv = iterators[ i ].next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tFLG = true;\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tif ( typeof v.value === 'number' ) {\n\t\t\t\t\tvalues[ i ] = v.value;\n\t\t\t\t} else {\n\t\t\t\t\terr = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalues[ i ] = iterators[ i ];\n\t\t\t}\n\t\t}\n\t\tif ( err ) {\n\t\t\treturn {\n\t\t\t\t'value': opts.invalid,\n\t\t\t\t'done': false\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn( values[ 0 ], values[ 1 ], values[ 2 ] ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < niter; i++ ) {\n\t\t\tif ( types[ i ] ) {\n\t\t\t\targs.push( iterators[ i ][ iteratorSymbol ]() );\n\t\t\t} else {\n\t\t\t\targs.push( iterators[ i ] );\n\t\t\t}\n\t\t}\n\t\targs.push( fcn, opts );\n\t\treturn iterMap3.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default iterMap3;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {*} [options.invalid] - return value when an input iterator yields a non-numeric value\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'invalid': NaN\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'invalid' ) ) {\n\t\topts.invalid = options.invalid;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isIteratorLike from '@stdlib/assert/is-iterator-like';\nimport abs from './../../../../base/special/abs';\nimport EPS from '@stdlib/constants/float64/eps';\nimport isnan from './../../../../base/assert/is-nan';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport format from '@stdlib/string/format';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar TINY = 1.0e-50;\n\n\n// MAIN //\n\n/**\n* Evaluates the terms of a continued fraction.\n*\n* @param {Iterator} iterator - input iterator\n* @param {Options} [options] - options\n* @param {NonNegativeInteger} [options.iter=1e308] - maximum number of iterations\n* @param {PositiveNumber} [options.tol] - tolerance at which to terminate further evaluation of the continued fraction\n* @throws {TypeError} must provide an iterator\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide validate options\n* @returns {(number|null)} result\n*\n* @example\n* import iterContinuedFractionSeq from '@stdlib/math/iter/sequences/continued-fraction';\n*\n* // Create an iterator for generating continued fraction terms:\n* var it = iterContinuedFractionSeq( 3.245 );\n*\n* // Reconstruct the original value from the terms:\n* var v = iterContinuedFraction( it );\n* // returns ~3.245\n*/\nfunction iterContinuedFraction( iterator ) {\n\tvar delta;\n\tvar opts;\n\tvar err;\n\tvar b0;\n\tvar o;\n\tvar C;\n\tvar D;\n\tvar f;\n\tvar b;\n\tvar i;\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an iterator. Value: `%s`.', iterator ) );\n\t}\n\topts = {\n\t\t'iter': 1e308,\n\t\t'tol': EPS\n\t};\n\tif ( arguments.length > 1 ) {\n\t\terr = validate( opts, arguments[ 1 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// Get the first iterated value...\n\to = iterator.next();\n\tif ( o.done ) {\n\t\treturn null;\n\t}\n\tb0 = o.value;\n\tif ( !isNumber( b0 ) || isnan( b0 ) ) {\n\t\treturn b0;\n\t}\n\t// Initialize parameters of the modified Lentz's algorithm...\n\tf = b0;\n\tif ( f === 0.0 ) {\n\t\tf = TINY;\n\t}\n\tC = f;\n\tD = 0.0;\n\n\t// Evaluate the terms of the continued fraction...\n\ti = 1;\n\twhile ( i < opts.iter ) {\n\t\t// Get the next iterated value...\n\t\to = iterator.next();\n\t\tif ( o.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\n\t\tb = o.value;\n\t\tif ( !isNumber( b ) || isnan( b ) ) {\n\t\t\tf = NaN;\n\t\t\tbreak;\n\t\t}\n\t\t// Use the modified Lentz's algorithm to find the next convergent...\n\t\tD += b; // b_i + a_i*D_{i-1}, where a_i = 1.0 for all i\n\t\tif ( D === 0.0 ) {\n\t\t\tD = TINY;\n\t\t}\n\t\tC = b + ( 1.0/C ); // b_i + a_i/C_{i-1}, where a_i = 1.0 for all i\n\t\tif ( C === 0.0 ) {\n\t\t\tC = TINY;\n\t\t}\n\t\tD = 1.0 / D;\n\t\tdelta = C * D;\n\t\tf *= delta;\n\n\t\t// Check whether we can terminate computation...\n\t\tif ( abs( delta - 1.0 ) <= opts.tol ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif ( i <= 1 ) {\n\t\treturn b0;\n\t}\n\treturn f;\n}\n\n\n// EXPORTS //\n\nexport default iterContinuedFraction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name iterContinuedFraction\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/iter/utils/continued-fraction}\n*/\nimport iterContinuedFraction from './../../../iter/utils/continued-fraction';\nsetReadOnly( ns, 'iterContinuedFraction', iterContinuedFraction );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert/is-nonnegative-integer';\nimport { isPrimitive as isFinite } from '@stdlib/assert/is-finite'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.iter] - maximum number of iterations\n* @param {PositiveNumber} [options.tol] - tolerance at which to terminate further evaluation of the continued fraction\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'iter': 50\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\topts.iter = options.iter;\n\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\treturn new TypeError( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'tol' ) ) {\n\t\topts.tol = options.tol;\n\t\tif ( !isFinite( options.tol ) || options.tol <= 0.0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a positive finite number. Option: `%s`.', 'tol', options.tol ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name ops\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter/ops}\n*/\nimport ops from './../../iter/ops';\nsetReadOnly( ns, 'ops', ops );\n\n/**\n* @name sequences\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter/sequences}\n*/\nimport sequences from './../../iter/sequences';\nsetReadOnly( ns, 'sequences', sequences );\n\n/**\n* @name special\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter/special}\n*/\nimport special from './../../iter/special';\nsetReadOnly( ns, 'special', special );\n\n/**\n* @name tools\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter/tools}\n*/\nimport tools from './../../iter/tools';\nsetReadOnly( ns, 'tools', tools );\n\n/**\n* @name utils\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter/utils}\n*/\nimport utils from './../../iter/utils';\nsetReadOnly( ns, 'utils', utils );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Resolves an output array data type.\n*\n* @private\n* @param {string} xdtype - input array data type\n* @param {string} policy - policy determining an output array data type\n* @throws {Error} unsupported policy\n* @returns {string} output array data type\n*/\nfunction resolve( xdtype, policy ) {\n\tswitch ( policy ) {\n\tcase 'same':\n\t\treturn xdtype;\n\tcase 'floating-point':\n\t\t// TODO: we may want to delegate checking for a floating-point dtype to a utility function/package (e.g., isFloatDtype), in order to centralize logic for testing whether a dtype is \"floating-point\". Otherwise, this will be yet another place to update logic should we ever add, e.g., a `float128` or `float16` dtype.\n\t\tif (\n\t\t\txdtype === 'float64' ||\n\t\t\txdtype === 'float32' ||\n\t\t\txdtype === 'generic' ||\n\t\t\txdtype === 'complex128' ||\n\t\t\txdtype === 'complex64'\n\t\t) {\n\t\t\treturn xdtype;\n\t\t}\n\t\treturn 'float64'; // TODO: constants/math/default-real-floating-point-dtype?\n\tcase 'real floating-point':\n\t\tif (\n\t\t\txdtype === 'float64' ||\n\t\t\txdtype === 'float32' ||\n\t\t\txdtype === 'generic'\n\t\t) {\n\t\t\treturn xdtype;\n\t\t}\n\t\treturn 'float64';\n\tcase 'complex floating-point':\n\t\tif (\n\t\t\txdtype === 'complex128' ||\n\t\t\txdtype === 'complex64'\n\t\t) {\n\t\t\treturn xdtype;\n\t\t}\n\t\treturn 'complex128'; // TODO: constants/math/default-complex-floating-point-dtype?\n\tdefault:\n\t\tthrow new Error( format( 'invalid option. Unsupported policy for determining an output array data type. Option: `%s`.', policy ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport contains from '@stdlib/assert/contains';\nimport orders from '@stdlib/ndarray/orders';\nimport dtypes from '@stdlib/ndarray/dtypes';\nimport format from '@stdlib/string/format';\n\n\n// VARIABLES //\n\nvar ORDERS = orders();\nvar DTYPES = dtypes();\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Object} options - options\n* @param {string} [options.dtype] - output array data type\n* @param {string} [options.order] - output array order\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'order': 'row-major'\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( DTYPES, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.', 'dtype', opts.dtype ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\topts.order = options.order;\n\t\tif ( !contains( ORDERS, opts.order ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized/supported data type. Option: `%s`.', 'order', opts.order ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport { isPrimitive as isNumber } from '@stdlib/assert/is-number';\nimport isComplexLike from '@stdlib/assert/is-complex-like';\nimport isndarrayLike from '@stdlib/assert/is-ndarray-like';\nimport isCollection from '@stdlib/assert/is-collection';\nimport dtype from '@stdlib/ndarray/base/buffer-dtype';\nimport buffer from '@stdlib/ndarray/base/buffer';\nimport broadcast from '@stdlib/ndarray/base/broadcast-array';\nimport format from '@stdlib/string/format';\nimport ndarrayfcn from './ndarray.js';\nimport odtype from './resolve_output_dtype.js';\nimport defaults from './defaults.json';\nimport validateTable from './validate_table.js';\nimport validateOptions from './validate_options.js';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to specified functions based on input argument types.\n*\n* @param {Object} table - resolution table object\n* @param {(Function|null)} [table.number] - function to invoke upon receiving a number\n* @param {(Function|null)} [table.complex] - function to invoke upon receiving a complex number\n* @param {(Function|null)} [table.array] - function to invoke upon receiving an array-like object\n* @param {(Function|null)} [table.ndarray] - function to invoke upon receiving an ndarray-like object\n* @param {Options} [options] - options\n* @param {string} [options.output_dtype_policy='floating-point'] - policy for determining the output array data type\n* @throws {TypeError} first argument must be an object\n* @throws {TypeError} first argument must have valid table fields\n* @throws {Error} each table field value must be either a function or `null`\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} dispatch function\n*\n* @example\n* import base from '@stdlib/math/base/special/abs';\n* import strided from '@stdlib/math/strided/special/abs';\n* import dispatcher from '@stdlib/ndarray/dispatch';\n* import unary from '@stdlib/ndarray/base/unary';\n* import Float64Array from '@stdlib/array/float64';\n*\n* var types = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n* var data = [\n* base,\n* base,\n* base\n* ];\n* var nd = dispatcher( unary, types, data, 2, 1, 1 );\n*\n* var table = {\n* 'number': base,\n* 'complex': null,\n* 'array': strided,\n* 'ndarray': nd\n* };\n*\n* var abs = dispatch( table, {\n* 'output_dtype_policy': 'same'\n* });\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0 ] );\n*\n* var y = abs( x );\n* // returns [ 1.0, 2.0, 3.0 ]\n*/\nfunction dispatch( table, options ) {\n\tvar OPTS;\n\tvar err;\n\tvar fcn;\n\tvar t;\n\n\tt = {\n\t\t'number': null,\n\t\t'complex': null,\n\t\t'array': null,\n\t\t'ndarray': null\n\t};\n\terr = validateTable( t, table );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\tOPTS = {\n\t\t'policy': defaults.output_dtype_policy\n\t};\n\tif ( arguments.length > 1 ) {\n\t\terr = validateOptions( OPTS, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tfcn = dispatcher;\n\tsetReadOnly( fcn, 'assign', assign );\n\treturn fcn;\n\n\t/**\n\t* Function interface which performs dispatch.\n\t*\n\t* @private\n\t* @param {(ndarray|Collection|number|Complex)} x - input value\n\t* @param {Options} [options] - options\n\t* @param {string} [options.dtype] - output array data type\n\t* @param {string} [options.order] - output array order (row-major or column-major)\n\t* @throws {TypeError} first argument must be a supported data type\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} must provide valid options\n\t* @returns {(ndarray|Collection|number|Complex)} results\n\t*/\n\tfunction dispatcher( x ) {\n\t\tvar xdtype;\n\t\tvar ydtype;\n\t\tvar opts;\n\t\tvar err;\n\t\tvar y;\n\t\tif ( isNumber( x ) ) {\n\t\t\tif ( t.number ) {\n\t\t\t\treturn t.number( x );\n\t\t\t}\n\t\t\tthrow new TypeError( 'invalid argument. Providing a number is not supported.' );\n\t\t}\n\t\tif ( isComplexLike( x ) ) {\n\t\t\tif ( t.complex ) {\n\t\t\t\treturn t.complex( x );\n\t\t\t}\n\t\t\tthrow new TypeError( 'invalid argument. Providing a complex number is not supported.' );\n\t\t}\n\t\topts = {};\n\t\tif ( arguments.length > 1 ) {\n\t\t\terr = validate( opts, arguments[ 1 ] );\n\t\t\tif ( err ) {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\t\tif ( isndarrayLike( x ) ) {\n\t\t\tif ( t.ndarray === null ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Providing an ndarray is not supported.' );\n\t\t\t}\n\t\t\tydtype = opts.dtype || odtype( x.dtype, OPTS.policy );\n\t\t\treturn ndarrayfcn( t.ndarray, x, ydtype, opts.order || x.order );\n\t\t}\n\t\tif ( isCollection( x ) ) {\n\t\t\tif ( t.array === null ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Providing an array-like object is not supported.' );\n\t\t\t}\n\t\t\txdtype = dtype( x ) || 'generic';\n\t\t\tydtype = opts.dtype || odtype( xdtype, OPTS.policy );\n\t\t\ty = buffer( ydtype, x.length );\n\t\t\tt.array( x.length, xdtype, x, 1, ydtype, y, 1 );\n\t\t\treturn y;\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an argument having a supported data type. Value: `%s`.', x ) );\n\t}\n\n\t/**\n\t* Function interface which performs dispatch and assigns results to a provided output array.\n\t*\n\t* @private\n\t* @param {(ndarray|Collection)} x - input array\n\t* @param {(ndarray|Collection)} y - output array\n\t* @throws {TypeError} first argument must be a supported data type\n\t* @throws {TypeError} second argument must be a supported data type\n\t* @throws {TypeError} first and second argument must be the same \"kind\" (i.e., either both ndarrays or both collections)\n\t* @throws {RangeError} output array must have sufficient elements\n\t* @throws {Error} unable to broadcast the input array against the output array\n\t* @returns {(ndarray|Collection)} output array\n\t*/\n\tfunction assign( x, y ) {\n\t\tvar xsh;\n\t\tvar ysh;\n\t\tvar i;\n\t\tif ( isndarrayLike( x ) ) {\n\t\t\tif ( isndarrayLike( y ) ) {\n\t\t\t\txsh = x.shape;\n\t\t\t\tysh = y.shape;\n\n\t\t\t\t// Check whether we need to broadcast `x`...\n\t\t\t\tif ( xsh.length === ysh.length ) {\n\t\t\t\t\tfor ( i = 0; i < xsh.length; i++ ) {\n\t\t\t\t\t\t// Check whether dimensions match...\n\t\t\t\t\t\tif ( xsh[ i ] !== ysh[ i ] ) {\n\t\t\t\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that `x` is broadcast compatible with the output array shape...\n\t\t\t\t\t\t\tx = broadcast( x, ysh );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If we are provided arrays with different ranks (i.e., number of dimensions), assume we need to broadcast, delegating to `broadcast` to ensure that `x` is broadcast compatible with the output array shape...\n\t\t\t\t\tx = broadcast( x, ysh );\n\t\t\t\t}\n\t\t\t\tt.ndarray( x, y );\n\t\t\t\treturn y;\n\t\t\t}\n\t\t\tthrow new TypeError( 'invalid argument. If the first argument is an ndarray, the second argument must be an ndarray.' );\n\t\t}\n\t\tif ( isCollection( x ) ) {\n\t\t\tif ( isCollection( y ) ) {\n\t\t\t\tif ( y.length !== x.length ) {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array must have the same number of elements (i.e., length) as the input array.' );\n\t\t\t\t}\n\t\t\t\tt.array( x.length, dtype( x ) || 'generic', x, 1, dtype( y ) || 'generic', y, 1 );\n\t\t\t\treturn y;\n\t\t\t}\n\t\t\tthrow new TypeError( 'invalid argument. If the first argument is an array-like object, the second argument must be an array-like object.' );\n\t\t}\n\t\tif ( isNumber( x ) ) {\n\t\t\tthrow new TypeError( 'invalid argument. Providing a number is not supported. Consider providing a zero-dimensional ndarray containing the numeric value.' );\n\t\t}\n\t\tif ( isComplexLike( x ) ) {\n\t\t\tthrow new TypeError( 'invalid argument. Providing a complex number is not supported. Consider providing a zero-dimensional ndarray containing the complex number value.' );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an argument having a supported data type. Value: `%s`.', x ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default dispatch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport isFunction from '@stdlib/assert/is-function';\nimport isNull from '@stdlib/assert/is-null';\nimport objectKeys from '@stdlib/utils/keys';\nimport format from '@stdlib/string/format';\n\n\n// MAIN //\n\n/**\n* Validates a resolution table object.\n*\n* @private\n* @param {Object} out - destination object\n* @param {Object} table - resolution table object\n* @param {(Function|null)} [table.number] - function to invoke upon receiving a number\n* @param {(Function|null)} [table.complex] - function to invoke upon receiving a complex number\n* @param {(Function|null)} [table.array] - function to invoke upon receiving an array-like object\n* @param {(Function|null)} [table.ndarray] - function to invoke upon receiving an ndarray-like object\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var out = {};\n* var table = {\n* 'number': null,\n* 'complex': null,\n* 'array': null,\n* 'ndarray': null\n* };\n* var err = validate( out, table );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( out, table ) {\n\tvar fields;\n\tvar tmp;\n\tvar key;\n\tvar i;\n\n\tif ( !isPlainObject( table ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Resolution table must be an object. Value: `%s`.', table ) );\n\t}\n\tfields = objectKeys( out );\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\tkey = fields[ i ];\n\t\tif ( hasOwnProp( table, key ) ) {\n\t\t\ttmp = table[ key ];\n\t\t\tif ( !isFunction( tmp ) && !isNull( tmp ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid argument. Resolution table `%s` field value must be either a function or null. Value: `%s`.', key, tmp ) );\n\t\t\t}\n\t\t\tout[ key ] = tmp;\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPlainObject from '@stdlib/assert/is-plain-object';\nimport hasOwnProp from '@stdlib/assert/has-own-property';\nimport contains from '@stdlib/assert/contains';\nimport format from '@stdlib/string/format';\nimport POLICIES from './policies.json';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Object} options - options\n* @param {string} [options.output_dtype_policy] - policy for determining the output array data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'output_dtype_policy': 'float'\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isPlainObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'output_dtype_policy' ) ) {\n\t\topts.policy = options.output_dtype_policy;\n\t\tif ( !contains( POLICIES, opts.policy ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized/supported output array data type policy. Option: `%s`.', 'output_dtype_policy', opts.policy ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ndarray from '@stdlib/ndarray/ctor';\nimport buffer from '@stdlib/ndarray/base/buffer';\nimport shape2strides from '@stdlib/ndarray/base/shape2strides';\nimport numel from '@stdlib/ndarray/base/numel';\nimport copy from '@stdlib/array/base/copy-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a function to an ndarray.\n*\n* @private\n* @param {Function} fcn - function to apply\n* @param {ndarray} x - input array\n* @param {string} ydtype - output array data type\n* @param {string} yorder - output array order\n* @returns {ndarray} output array\n*/\nfunction ndarrayfcn( fcn, x, ydtype, yorder ) {\n\tvar shape;\n\tvar buf;\n\tvar y;\n\n\t// Check if we were provided a zero-dimensional array...\n\tshape = copy( x.shape ); // Note: we need to copy the shape to avoid a shared shape object between `x` and `y` which could lead to unintended mutations (e.g., if either `x` or `y` is reshaped)\n\tif ( shape.length === 0 ) {\n\t\tbuf = buffer( ydtype, 1 );\n\t\ty = ndarray( ydtype, buf, [], [ 0 ], 0, yorder );\n\t} else {\n\t\tbuf = buffer( ydtype, x.length || numel( shape ) ); // WARNING: `x.length` is a property found on ndarray instances, but not strictly necessary to describe an ndarray; accordingly, used here to avoid unnecessary computation, but a potential source of bugs if provided an ndarray-like object having a `length` property which is not equal to the product of the dimensions.\n\t\ty = ndarray( ydtype, buf, shape, shape2strides( shape, yorder ), 0, yorder ); // eslint-disable-line max-len\n\t}\n\tfcn( x, y );\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default ndarrayfcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../../base/special/abs';\nimport absf from './../../../../base/special/absf';\nimport labs from './../../../../base/special/labs';\nimport identity from './../../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tabs,\n\tabs,\n\n\t// float32\n\tabsf,\n\tabsf,\n\tabsf,\n\n\t// generic\n\tabs,\n\n\t// int32\n\tlabs,\n\tlabs,\n\tlabs,\n\tlabs,\n\n\t// int16\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\n\t// int8\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* abs( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction abs( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* abs( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction abs( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport abs from './abs.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( abs, 'ndarray', ndarray );\nsetProps( meta, types, abs, false );\nsetProps( meta, types, abs.ndarray, true );\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport abs from './../../../base/special/abs';\nimport absf from './../../../base/special/absf';\nimport labs from './../../../base/special/labs';\nimport identity from './../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tabs,\n\tabs,\n\n\t// float32\n\tabsf,\n\tabsf,\n\tabsf,\n\n\t// generic\n\tabs,\n\n\t// int32\n\tlabs,\n\tlabs,\n\tlabs,\n\tlabs,\n\n\t// int16\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\n\t// int8\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\tabs,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from './../../../tools/unary';\nimport config from './config.json';\nimport table from './table.js';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value.\n*\n* @name abs\n* @type {Function}\n* @param {(ndarray|Collection|number)} x - input value\n* @param {Options} [options] - options\n* @param {string} [options.order] - output array order\n* @param {string} [options.dtype] - output array dtype\n* @throws {TypeError} first argument must be a supported data type\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {(ndarray|Collection|number)} results\n*\n* @example\n* var y = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.0, -1.0, 0.0 ] );\n*\n* var y = abs( x );\n* // returns [ 1.0, 1.0, 0.0 ]\n*\n* @example\n* var x = [ 1.0, -1.0, 0.0 ];\n*\n* var y = abs( x );\n* // returns [ 1.0, 1.0, 0.0 ]\n*\n* @example\n* import array from '@stdlib/ndarray/array';\n*\n* var x = array( [ [ 1.0, -2.0 ], [ -3.0, 4.0 ] ] );\n* // returns \n*\n* var y = abs( x );\n* // returns \n*\n* var v = y.get( 0, 1 );\n* // 2.0\n*/\nvar abs = dispatch( table, config );\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport base from './../../../base/special/abs';\nimport strided from './../../../strided/special/abs';\nimport dispatcher from '@stdlib/ndarray/dispatch';\nimport unary from '@stdlib/ndarray/base/unary';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// MAIN //\n\nvar table = {\n\t'number': base,\n\t'complex': null,\n\t'array': strided,\n\t'ndarray': dispatcher( unary, types, data, meta.nargs, meta.nin, meta.nout )\n};\n\n\n// EXPORTS //\n\nexport default table;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setProps from '@stdlib/ndarray/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport abs from './abs.js';\n\n\n// MAIN //\n\nsetProps( meta, types, abs );\nsetProps( meta, types, abs.assign );\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name abs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/special/abs}\n*/\nimport abs from './../../special/abs';\nsetReadOnly( ns, 'abs', abs );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport signatures from '@stdlib/strided/base/binary-dtype-signatures';\nimport dtypes from './dtypes.enum.json';\n\n\n// MAIN //\n\n/**\n* List of dtypes defining supported interface signatures.\n*\n* @private\n* @name types\n* @constant\n* @type {Array}\n*/\nvar types = signatures( dtypes[ 0 ], dtypes[ 1 ], dtypes[ 2 ], {\n\t'enums': true\n});\n\n\n// EXPORTS //\n\nexport default types;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport add from './../../../../base/ops/add';\nimport cadd from '@stdlib/complex/float64/base/add';\nimport caddf from '@stdlib/complex/float32/base/add';\nimport callbacks from '@stdlib/strided/base/binary-signature-callbacks';\nimport types from './types.js';\n\n\n// VARIABLES //\n\n// Define a callback table...\nvar table = {\n\t'default': add,\n\t'complex64': caddf,\n\t'complex128': cadd\n};\n\n\n// MAIN //\n\n/**\n* Binary callbacks to apply to strided arrays.\n*\n* @private\n* @name data\n* @constant\n* @type {Array}\n*/\nvar data = callbacks( table, types );\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport binary from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Adds each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {TypeError} ninth argument must be an array-like object\n* @throws {TypeError} tenth argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} ninth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* add( x.length, 'float64', x, 1, 'float64', y, 1, 'float64', z, 1 );\n* // z => [ -1.0, 3.0, 6.0, -1.0, 9.0 ]\n*/\nfunction add( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY, resolve( dtypeZ ), z, strideZ );\n}\n\n\n// EXPORTS //\n\nexport default add;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as binary } from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Adds each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {TypeError} eleventh argument must be an array-like object\n* @throws {TypeError} twelfth argument must be an integer\n* @throws {TypeError} thirteenth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} eleventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* add( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0, 'float64', z, 1, 0 );\n* // z => [ -1.0, 3.0, 6.0, -1.0, 9.0 ]\n*/\nfunction add( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY, resolve( dtypeZ ), z, strideZ, offsetZ );\n}\n\n\n// EXPORTS //\n\nexport default add;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy2 from '@stdlib/strided/base/map-by2';\nimport add from './../../../../base/ops/add';\n\n\n// MAIN //\n\n/**\n* Performs element-wise addition of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* addBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 12.0, 14.0, 16.0, 18.0, 20.0 ]\n*/\nfunction addBy( N, x, sx, y, sy, z, sz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, y, sy, z, sz, add, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default addBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.js';\nimport add from './add.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( add, 'ndarray', ndarray );\nsetProps( meta, types, add, false );\nsetProps( meta, types, add.ndarray, true );\n\n\n// EXPORTS //\n\nexport default add;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform element-wise addition of two strided arrays via a callback function and assign each result to an element in an output strided array.\n*\n* @module @stdlib/math/strided/ops/add-by\n*\n* @example\n* import addBy from '@stdlib/math/strided/ops/add-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* addBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 12.0, 14.0, 16.0, 18.0, 20.0 ]\n*\n* @example\n* import addBy from '@stdlib/math/strided/ops/add-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* addBy.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 12.0, 14.0, 16.0, 18.0, 20.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-params */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy2 } from '@stdlib/strided/base/map-by2';\nimport add from './../../../../base/ops/add';\n\n\n// MAIN //\n\n/**\n* Performs element-wise addition of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {NonNegativeInteger} oz - starting `z` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* addBy( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 12.0, 14.0, 16.0, 18.0, 20.0 ]\n*/\nfunction addBy( N, x, sx, ox, y, sy, oy, z, sz, oz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, ox, y, sy, oy, z, sz, oz, add, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default addBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport signatures from '@stdlib/strided/base/binary-dtype-signatures';\nimport dtypes from './dtypes.enum.json';\n\n\n// MAIN //\n\n/**\n* List of dtypes defining supported interface signatures.\n*\n* @private\n* @name types\n* @constant\n* @type {Array}\n*/\nvar types = signatures( dtypes[ 0 ], dtypes[ 1 ], dtypes[ 2 ], {\n\t'enums': true\n});\n\n\n// EXPORTS //\n\nexport default types;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mul from './../../../../base/ops/mul';\nimport cmul from '@stdlib/complex/float64/base/mul';\nimport cmulf from '@stdlib/complex/float32/base/mul';\nimport callbacks from '@stdlib/strided/base/binary-signature-callbacks';\nimport types from './types.js';\n\n\n// VARIABLES //\n\n// Define a callback table...\nvar table = {\n\t'default': mul,\n\t'complex64': cmulf,\n\t'complex128': cmul\n};\n\n\n// MAIN //\n\n/**\n* Binary callbacks to apply to strided arrays.\n*\n* @private\n* @name data\n* @constant\n* @type {Array}\n*/\nvar data = callbacks( table, types );\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport binary from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Multiplies each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {TypeError} ninth argument must be an array-like object\n* @throws {TypeError} tenth argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} ninth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* mul( x.length, 'float64', x, 1, 'float64', y, 1, 'float64', z, 1 );\n* // z => [ -2.0, 2.0, 9.0, -20.0, 20.0 ]\n*/\nfunction mul( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY, resolve( dtypeZ ), z, strideZ );\n}\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as binary } from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Multiplies each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {TypeError} eleventh argument must be an array-like object\n* @throws {TypeError} twelfth argument must be an integer\n* @throws {TypeError} thirteenth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} eleventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* mul( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0, 'float64', z, 1, 0 );\n* // z => [ -2.0, 2.0, 9.0, -20.0, 20.0 ]\n*/\nfunction mul( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY, resolve( dtypeZ ), z, strideZ, offsetZ );\n}\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy2 from '@stdlib/strided/base/map-by2';\nimport mul from './../../../../base/ops/mul';\n\n\n// MAIN //\n\n/**\n* Performs element-wise multiplication of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mulBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]\n*/\nfunction mulBy( N, x, sx, y, sy, z, sz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, y, sy, z, sz, mul, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mulBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.js';\nimport mul from './mul.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( mul, 'ndarray', ndarray );\nsetProps( meta, types, mul, false );\nsetProps( meta, types, mul.ndarray, true );\n\n\n// EXPORTS //\n\nexport default mul;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform element-wise multiplication of two strided arrays via a callback function and assign each result to an element in an output strided array.\n*\n* @module @stdlib/math/strided/ops/mul-by\n*\n* @example\n* import mulBy from '@stdlib/math/strided/ops/mul-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mulBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]\n*\n* @example\n* import mulBy from '@stdlib/math/strided/ops/mul-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mulBy.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-params */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy2 } from '@stdlib/strided/base/map-by2';\nimport mul from './../../../../base/ops/mul';\n\n\n// MAIN //\n\n/**\n* Performs element-wise multiplication of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {NonNegativeInteger} oz - starting `z` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mulBy( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]\n*/\nfunction mulBy( N, x, sx, ox, y, sy, oy, z, sz, oz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, ox, y, sy, oy, z, sz, oz, mul, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default mulBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport signatures from '@stdlib/strided/base/binary-dtype-signatures';\nimport dtypes from './dtypes.enum.json';\n\n\n// MAIN //\n\n/**\n* List of dtypes defining supported interface signatures.\n*\n* @private\n* @name types\n* @constant\n* @type {Array}\n*/\nvar types = signatures( dtypes[ 0 ], dtypes[ 1 ], dtypes[ 2 ], {\n\t'enums': true\n});\n\n\n// EXPORTS //\n\nexport default types;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sub from './../../../../base/ops/sub';\nimport csub from './../../../../base/ops/csub';\nimport csubf from './../../../../base/ops/csubf';\nimport callbacks from '@stdlib/strided/base/binary-signature-callbacks';\nimport types from './types.js';\n\n\n// VARIABLES //\n\n// Define a callback table...\nvar table = {\n\t'default': sub,\n\t'complex64': csubf,\n\t'complex128': csub\n};\n\n\n// MAIN //\n\n/**\n* Binary callbacks to apply to strided arrays.\n*\n* @private\n* @name data\n* @constant\n* @type {Array}\n*/\nvar data = callbacks( table, types );\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport binary from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Subtracts each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {TypeError} ninth argument must be an array-like object\n* @throws {TypeError} tenth argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} ninth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sub( x.length, 'float64', x, 1, 'float64', y, 1, 'float64', z, 1 );\n* // z => [ -3.0, -1.0, 0.0, -9.0, -1.0 ]\n*/\nfunction sub( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY, resolve( dtypeZ ), z, strideZ );\n}\n\n\n// EXPORTS //\n\nexport default sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as binary } from '@stdlib/strided/base/binary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.js';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( binary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Subtracts each element in a strided array `x` to a corresponding element in a strided array `y` and assigns the results to elements in a strided array `z`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {*} dtypeZ - `z` data type\n* @param {Collection} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {TypeError} eleventh argument must be an array-like object\n* @throws {TypeError} twelfth argument must be an integer\n* @throws {TypeError} thirteenth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} eleventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `z`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sub( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0, 'float64', z, 1, 0 );\n* // z => [ -3.0, -1.0, 0.0, -9.0, -1.0 ]\n*/\nfunction sub( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY, resolve( dtypeZ ), z, strideZ, offsetZ );\n}\n\n\n// EXPORTS //\n\nexport default sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy2 from '@stdlib/strided/base/map-by2';\nimport sub from './../../../../base/ops/sub';\n\n\n// MAIN //\n\n/**\n* Performs element-wise subtraction of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var y = [ 8.0, 7.0, 6.0, 5.0, 4.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* subBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 3.0, 5.0, 7.0, 9.0, 11.0 ]\n*/\nfunction subBy( N, x, sx, y, sy, z, sz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, y, sy, z, sz, sub, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default subBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.js';\nimport sub from './sub.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sub, 'ndarray', ndarray );\nsetProps( meta, types, sub, false );\nsetProps( meta, types, sub.ndarray, true );\n\n\n// EXPORTS //\n\nexport default sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Perform element-wise subtraction of two strided arrays via a callback function and assign each result to an element in an output strided array.\n*\n* @module @stdlib/math/strided/ops/sub-by\n*\n* @example\n* import subBy from '@stdlib/math/strided/ops/sub-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var y = [ 8.0, 7.0, 6.0, 5.0, 4.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* subBy( x.length, x, 1, y, 1, z, 1, accessor );\n*\n* console.log( z );\n* // => [ 3.0, 5.0, 7.0, 9.0, 11.0 ]\n*\n* @example\n* import subBy from '@stdlib/math/strided/ops/sub-by';\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var y = [ 8.0, 7.0, 6.0, 5.0, 4.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* subBy.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 3.0, 5.0, 7.0, 9.0, 11.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-params */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy2 } from '@stdlib/strided/base/map-by2';\nimport sub from './../../../../base/ops/sub';\n\n\n// MAIN //\n\n/**\n* Performs element-wise subtraction of two strided arrays via a callback function and assigns each result to an element in an output strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Collection} y - input array/collection\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} sz - `z` stride length\n* @param {NonNegativeInteger} oz - starting `z` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* function accessor( values ) {\n* return values;\n* }\n*\n* var x = [ 11.0, 12.0, 13.0, 14.0, 15.0 ];\n* var y = [ 8.0, 7.0, 6.0, 5.0, 4.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* subBy( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );\n*\n* console.log( z );\n* // => [ 3.0, 5.0, 7.0, 9.0, 11.0 ]\n*/\nfunction subBy( N, x, sx, ox, y, sy, oy, z, sz, oz, clbk, thisArg ) {\n\treturn mapBy2( N, x, sx, ox, y, sy, oy, z, sz, oz, sub, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default subBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name add\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/add}\n*/\nimport add from './../../../strided/ops/add';\nsetReadOnly( ns, 'add', add );\n\n/**\n* @name addBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/add-by}\n*/\nimport addBy from './../../../strided/ops/add-by';\nsetReadOnly( ns, 'addBy', addBy );\n\n/**\n* @name mul\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/mul}\n*/\nimport mul from './../../../strided/ops/mul';\nsetReadOnly( ns, 'mul', mul );\n\n/**\n* @name mulBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/mul-by}\n*/\nimport mulBy from './../../../strided/ops/mul-by';\nsetReadOnly( ns, 'mulBy', mulBy );\n\n/**\n* @name sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/sub}\n*/\nimport sub from './../../../strided/ops/sub';\nsetReadOnly( ns, 'sub', sub );\n\n/**\n* @name subBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/ops/sub-by}\n*/\nimport subBy from './../../../strided/ops/sub-by';\nsetReadOnly( ns, 'subBy', subBy );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value of each element retrieved from a strided input array `x` via a callback function and assigns each result to an element in a strided output array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* absBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction absBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, abs, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default absBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the absolute value of each element retrieved from a strided input array `x` via a callback function and assign each result to an element in a strided output array `y`.\n*\n* @module @stdlib/math/strided/special/abs-by\n*\n* @example\n* import absBy from '@stdlib/math/strided/special/abs-by';\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* absBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* import absBy from '@stdlib/math/strided/special/abs-by';\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* absBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value of each element retrieved from a strided input array `x` via a callback function and assigns each result to an element in a strided output array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* absBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction absBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, abs, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default absBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport abs2 from './../../../../base/special/abs2';\nimport abs2f from './../../../../base/special/abs2f';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tabs2,\n\tabs2,\n\n\t// float32\n\tabs2f,\n\tabs2,\n\tabs2,\n\n\t// generic\n\tabs2,\n\n\t// int32\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// int16\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// int8\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// uint32\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// uint16\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// uint8\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\n\t// uint8c\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2,\n\tabs2\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* abs2( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 4.0, 1.0, 9.0, 25.0, 16.0 ]\n*/\nfunction abs2( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default abs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* abs2( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 4.0, 1.0, 9.0, 25.0, 16.0 ]\n*/\nfunction abs2( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default abs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -1.0, -2.0, -3.0, -4.0, -5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* abs2By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction abs2By( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, abs2, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default abs2By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the arccosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 0.707, 0.866, -0.707, -0.866 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.786, ~0.524, ~2.356, ~2.618 ]\n*/\nfunction acosBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acosh from './../../../../base/special/acosh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arccosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 1.5, 2.0, 2.5, 3.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoshBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.962, ~1.317, ~1.567, ~1.763 ]\n*/\nfunction acoshBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acosh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acoshBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acot from './../../../../base/special/acot';\n\n\n// MAIN //\n\n/**\n* Computes the inverse cotangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -2.5, -1.5, -0.5, 0.0, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acotBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~-0.381, ~-0.588, ~-1.107, ~1.571, ~1.107 ]\n*/\nfunction acotBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acot, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acotBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acoth from './../../../../base/special/acoth';\n\n\n// MAIN //\n\n/**\n* Computes the inverse hyperbolic cotangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -5.0, -4.0, -3.0, -1.0, 1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acothBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~-0.203, ~-0.255, ~-0.347, -Infinity, Infinity ]\n*/\nfunction acothBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acoth, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acothBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acovercos from './../../../../base/special/acovercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acovercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\nfunction acovercosBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acovercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acovercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport acoversin from './../../../../base/special/acoversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\nfunction acoversinBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, acoversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acoversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport ahavercos from './../../../../base/special/ahavercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahavercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~3.142, ~1.571, 0.0, ~2.094, ~1.047 ]\n*/\nfunction ahavercosBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, ahavercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default ahavercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport ahaversin from './../../../../base/special/ahaversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahaversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~1.571, ~3.142, ~1.047, ~2.094 ]\n*/\nfunction ahaversinBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, ahaversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default ahaversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the arcsine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.524, ~1.571, ~-0.253, ~0.848 ]\n*/\nfunction asinBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, asin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default asinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport asinh from './../../../../base/special/asinh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arcsine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.0, 2.0, -2.0, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinhBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 0.0, ~1.444, ~-1.444, ~0.693 ]\n*/\nfunction asinhBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, asinh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default asinhBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport atan from './../../../../base/special/atan';\n\n\n// MAIN //\n\n/**\n* Computes the arctangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -1.25, 3.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.464, ~0.785, ~-0.896, ~1.31 ]\n*/\nfunction atanBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, atan, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default atanBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport atanh from './../../../../base/special/atanh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arctangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanhBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.549, Infinity, ~-0.255, ~0.973 ]\n*/\nfunction atanhBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, atanh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default atanhBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport avercos from './../../../../base/special/avercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* avercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\nfunction avercosBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, avercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default avercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport aversin from './../../../../base/special/aversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* aversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\nfunction aversinBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, aversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default aversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport besselj0 from './../../../../base/special/besselj0';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order zero for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj0By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~0.765, ~0.998, ~0.984, ~0.938 ]\n*/\nfunction besselj0By( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, besselj0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default besselj0By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport besselj1 from './../../../../base/special/besselj1';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order one for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj1By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.44, ~0.05, ~0.124, ~0.242 ]\n*/\nfunction besselj1By( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, besselj1, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default besselj1By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport bessely0 from './../../../../base/special/bessely0';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order zero for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely0By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~0.088, ~-1.534, ~-0.932, ~-0.445 ]\n*/\nfunction bessely0By( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, bessely0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default bessely0By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport bessely1 from './../../../../base/special/bessely1';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order one for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely1By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~-0.781, ~-6.459, ~-2.704, ~-1.471 ]\n*/\nfunction bessely1By( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, bessely1, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default bessely1By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport binet from './../../../../base/special/binet';\n\n\n// MAIN //\n\n/**\n* Evaluates Binet's formula extended to real numbers for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 2.0, 3.0, -1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* binetBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, 1.0, 2.0, 1.0 ]\n*/\nfunction binetBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, binet, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default binetBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport abs2 from './abs2.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( abs2, 'ndarray', ndarray );\nsetProps( meta, types, abs2, false );\nsetProps( meta, types, abs2.ndarray, true );\n\n\n// EXPORTS //\n\nexport default abs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the squared absolute value of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/abs2-by\n*\n* @example\n* import abs2By from '@stdlib/math/strided/special/abs2-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -1.0, -2.0, -3.0, -4.0, -5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* abs2By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*\n* @example\n* import abs2By from '@stdlib/math/strided/special/abs2-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -1.0, -2.0, -3.0, -4.0, -5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* abs2By.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -1.0, -2.0, -3.0, -4.0, -5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* abs2By( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction abs2By( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, abs2, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default abs2By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the arccosine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acos-by\n*\n* @example\n* import acosBy from '@stdlib/math/strided/special/acos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 0.707, 0.866, -0.707, -0.866 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.786, ~0.524, ~2.356, ~2.618 ]\n*\n* @example\n* import acosBy from '@stdlib/math/strided/special/acos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 0.707, 0.866, -0.707, -0.866 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acosBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.786, ~0.524, ~2.356, ~2.618 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acos from './../../../../base/special/acos';\n\n\n// MAIN //\n\n/**\n* Computes the arccosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 0.707, 0.866, -0.707, -0.866 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acosBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.786, ~0.524, ~2.356, ~2.618 ]\n*/\nfunction acosBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the hyperbolic arccosine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acosh-by\n*\n* @example\n* import acoshBy from '@stdlib/math/strided/special/acosh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 1.5, 2.0, 2.5, 3.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoshBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.962, ~1.317, ~1.567, ~1.763 ]\n*\n* @example\n* import acoshBy from '@stdlib/math/strided/special/acosh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 1.5, 2.0, 2.5, 3.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoshBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.962, ~1.317, ~1.567, ~1.763 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acosh from './../../../../base/special/acosh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arccosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 1.5, 2.0, 2.5, 3.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoshBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.962, ~1.317, ~1.567, ~1.763 ]\n*/\nfunction acoshBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acosh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acoshBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse cotangent of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acot-by\n*\n* @example\n* import acotBy from '@stdlib/math/strided/special/acot-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -2.5, -1.5, -0.5, 0.0, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acotBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~-0.381, ~-0.588, ~-1.107, ~1.571, ~1.107 ]\n*\n* @example\n* import acotBy from '@stdlib/math/strided/special/acot-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -2.5, -1.5, -0.5, 0.0, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acotBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~-0.381, ~-0.588, ~-1.107, ~1.571, ~1.107 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acot from './../../../../base/special/acot';\n\n\n// MAIN //\n\n/**\n* Computes the inverse cotangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -2.5, -1.5, -0.5, 0.0, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acotBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~-0.381, ~-0.588, ~-1.107, ~1.571, ~1.107 ]\n*/\nfunction acotBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acot, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acotBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse hyperbolic cotangent of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acoth-by\n*\n* @example\n* import acothBy from '@stdlib/math/strided/special/acoth-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -5.0, -4.0, -3.0, -1.0, 1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acothBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~-0.203, ~-0.255, ~-0.347, -Infinity, Infinity ]\n*\n* @example\n* import acothBy from '@stdlib/math/strided/special/acoth-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -5.0, -4.0, -3.0, -1.0, 1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acothBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~-0.203, ~-0.255, ~-0.347, -Infinity, Infinity ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acoth from './../../../../base/special/acoth';\n\n\n// MAIN //\n\n/**\n* Computes the inverse hyperbolic cotangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ -5.0, -4.0, -3.0, -1.0, 1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acothBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~-0.203, ~-0.255, ~-0.347, -Infinity, Infinity ]\n*/\nfunction acothBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acoth, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acothBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse coversed cosine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acovercos-by\n*\n* @example\n* import acovercosBy from '@stdlib/math/strided/special/acovercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acovercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*\n* @example\n* import acovercosBy from '@stdlib/math/strided/special/acovercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acovercosBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acovercos from './../../../../base/special/acovercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acovercosBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\nfunction acovercosBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acovercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acovercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse coversed sine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/acoversin-by\n*\n* @example\n* import acoversinBy from '@stdlib/math/strided/special/acoversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*\n* @example\n* import acoversinBy from '@stdlib/math/strided/special/acoversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoversinBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport acoversin from './../../../../base/special/acoversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse coversed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* acoversinBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~1.571, ~-0.607, ~0.524, 0.0, ~-0.253 ]\n*/\nfunction acoversinBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, acoversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default acoversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse half-value versed cosine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/ahavercos-by\n*\n* @example\n* import ahavercosBy from '@stdlib/math/strided/special/ahavercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahavercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ ~3.142, ~1.571, 0.0, ~2.094, ~1.047 ]\n*\n* @example\n* import ahavercosBy from '@stdlib/math/strided/special/ahavercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahavercosBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~3.142, ~1.571, 0.0, ~2.094, ~1.047 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport ahavercos from './../../../../base/special/ahavercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahavercosBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ ~3.142, ~1.571, 0.0, ~2.094, ~1.047 ]\n*/\nfunction ahavercosBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, ahavercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default ahavercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse half-value versed sine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/ahaversin-by\n*\n* @example\n* import ahaversinBy from '@stdlib/math/strided/special/ahaversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahaversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~1.571, ~3.142, ~1.047, ~2.094 ]\n*\n* @example\n* import ahaversinBy from '@stdlib/math/strided/special/ahaversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahaversinBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~1.571, ~3.142, ~1.047, ~2.094 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport ahaversin from './../../../../base/special/ahaversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse half-value versed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 0.5, 1.0, 0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* ahaversinBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~1.571, ~3.142, ~1.047, ~2.094 ]\n*/\nfunction ahaversinBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, ahaversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default ahaversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the arcsine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/asin-by\n*\n* @example\n* import asinBy from '@stdlib/math/strided/special/asin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.524, ~1.571, ~-0.253, ~0.848 ]\n*\n* @example\n* import asinBy from '@stdlib/math/strided/special/asin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.524, ~1.571, ~-0.253, ~0.848 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport asin from './../../../../base/special/asin';\n\n\n// MAIN //\n\n/**\n* Computes the arcsine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.524, ~1.571, ~-0.253, ~0.848 ]\n*/\nfunction asinBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, asin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default asinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the hyperbolic arcsine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/asinh-by\n*\n* @example\n* import asinhBy from '@stdlib/math/strided/special/asinh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.0, 2.0, -2.0, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinhBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 0.0, ~1.444, ~-1.444, ~0.693 ]\n*\n* @example\n* import asinhBy from '@stdlib/math/strided/special/asinh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.0, 2.0, -2.0, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinhBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 0.0, ~1.444, ~-1.444, ~0.693 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport asinh from './../../../../base/special/asinh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arcsine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.0, 2.0, -2.0, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* asinhBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 0.0, ~1.444, ~-1.444, ~0.693 ]\n*/\nfunction asinhBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, asinh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default asinhBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the arctangent of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/atan-by\n*\n* @example\n* import atanBy from '@stdlib/math/strided/special/atan-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -1.25, 3.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.464, ~0.785, ~-0.896, ~1.31 ]\n*\n* @example\n* import atanBy from '@stdlib/math/strided/special/atan-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -1.25, 3.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.464, ~0.785, ~-0.896, ~1.31 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport atan from './../../../../base/special/atan';\n\n\n// MAIN //\n\n/**\n* Computes the arctangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -1.25, 3.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.464, ~0.785, ~-0.896, ~1.31 ]\n*/\nfunction atanBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, atan, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default atanBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the hyperbolic arctangent of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/atanh-by\n*\n* @example\n* import atanhBy from '@stdlib/math/strided/special/atanh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanhBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.549, Infinity, ~-0.255, ~0.973 ]\n*\n* @example\n* import atanhBy from '@stdlib/math/strided/special/atanh-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanhBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.549, Infinity, ~-0.255, ~0.973 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport atanh from './../../../../base/special/atanh';\n\n\n// MAIN //\n\n/**\n* Computes the hyperbolic arctangent of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -0.5, 1.0, -0.25, 0.75 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* atanhBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~-0.549, Infinity, ~-0.255, ~0.973 ]\n*/\nfunction atanhBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, atanh, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default atanhBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse versed cosine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/avercos-by\n*\n* @example\n* import avercosBy from '@stdlib/math/strided/special/avercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* avercosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*\n* @example\n* import avercosBy from '@stdlib/math/strided/special/avercos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* avercosBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport avercos from './../../../../base/special/avercos';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed cosine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, -1.57, -0.5, -1.0, -1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* avercosBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\nfunction avercosBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, avercos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default avercosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the inverse versed sine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/aversin-by\n*\n* @example\n* import aversinBy from '@stdlib/math/strided/special/aversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* aversinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*\n* @example\n* import aversinBy from '@stdlib/math/strided/special/aversin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* aversinBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport aversin from './../../../../base/special/aversin';\n\n\n// MAIN //\n\n/**\n* Computes the inverse versed sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.57, 0.5, 1.0, 1.25 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* aversinBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~2.177, ~1.047, ~1.571, ~1.823 ]\n*/\nfunction aversinBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, aversin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default aversinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Bessel function of the first kind of order zero for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/besselj0-by\n*\n* @example\n* import besselj0By from '@stdlib/math/strided/special/besselj0-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj0By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~0.765, ~0.998, ~0.984, ~0.938 ]\n*\n* @example\n* import besselj0By from '@stdlib/math/strided/special/besselj0-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj0By.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~0.765, ~0.998, ~0.984, ~0.938 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport besselj0 from './../../../../base/special/besselj0';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order zero for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj0By( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~0.765, ~0.998, ~0.984, ~0.938 ]\n*/\nfunction besselj0By( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, besselj0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default besselj0By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Bessel function of the first kind of order one for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/besselj1-by\n*\n* @example\n* import besselj1By from '@stdlib/math/strided/special/besselj1-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj1By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.44, ~0.05, ~0.124, ~0.242 ]\n*\n* @example\n* import besselj1By from '@stdlib/math/strided/special/besselj1-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj1By.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.44, ~0.05, ~0.124, ~0.242 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport besselj1 from './../../../../base/special/besselj1';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the first kind of order one for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* besselj1By( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.44, ~0.05, ~0.124, ~0.242 ]\n*/\nfunction besselj1By( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, besselj1, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default besselj1By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Bessel function of the second kind of order zero for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/bessely0-by\n*\n* @example\n* import bessely0By from '@stdlib/math/strided/special/bessely0-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely0By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~0.088, ~-1.534, ~-0.932, ~-0.445 ]\n*\n* @example\n* import bessely0By from '@stdlib/math/strided/special/bessely0-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely0By.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~0.088, ~-1.534, ~-0.932, ~-0.445 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport bessely0 from './../../../../base/special/bessely0';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order zero for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely0By( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~0.088, ~-1.534, ~-0.932, ~-0.445 ]\n*/\nfunction bessely0By( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, bessely0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default bessely0By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the Bessel function of the second kind of order one for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/bessely1-by\n*\n* @example\n* import bessely1By from '@stdlib/math/strided/special/bessely1-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely1By( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~-0.781, ~-6.459, ~-2.704, ~-1.471 ]\n*\n* @example\n* import bessely1By from '@stdlib/math/strided/special/bessely1-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely1By.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~-0.781, ~-6.459, ~-2.704, ~-1.471 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport bessely1 from './../../../../base/special/bessely1';\n\n\n// MAIN //\n\n/**\n* Computes the Bessel function of the second kind of order one for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 0.1, 0.25, 0.5 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* bessely1By( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ -Infinity, ~-0.781, ~-6.459, ~-2.704, ~-1.471 ]\n*/\nfunction bessely1By( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, bessely1, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default bessely1By;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Evaluate Binet's formula extended to real numbers for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/binet-by\n*\n* @example\n* import binetBy from '@stdlib/math/strided/special/binet-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 2.0, 3.0, -1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* binetBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, 1.0, 2.0, 1.0 ]\n*\n* @example\n* import binetBy from '@stdlib/math/strided/special/binet-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 2.0, 3.0, -1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* binetBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, 1.0, 2.0, 1.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport binet from './../../../../base/special/binet';\n\n\n// MAIN //\n\n/**\n* Evaluates Binet's formula extended to real numbers for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 2.0, 3.0, -1.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* binetBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, 1.0, 2.0, 1.0 ]\n*/\nfunction binetBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, binet, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default binetBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport cbrt from './../../../../base/special/cbrt';\nimport cbrtf from './../../../../base/special/cbrtf';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tcbrt,\n\tcbrt,\n\n\t// float32\n\tcbrtf,\n\tcbrt,\n\tcbrt,\n\n\t// generic\n\tcbrt,\n\n\t// int32\n\tcbrt,\n\tcbrt,\n\n\t// int16\n\tcbrtf,\n\tcbrt,\n\tcbrt,\n\n\t// int8\n\tcbrtf,\n\tcbrt,\n\tcbrt,\n\n\t// uint32\n\tcbrt,\n\tcbrt,\n\n\t// uint16\n\tcbrtf,\n\tcbrt,\n\tcbrt,\n\n\t// uint8\n\tcbrtf,\n\tcbrt,\n\tcbrt,\n\n\t// uint8c\n\tcbrtf,\n\tcbrt,\n\tcbrt\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* cbrt( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction cbrt( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default cbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* cbrt( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction cbrt( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default cbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 9.0, -27.0, 81.0, -125.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cbrtBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\nfunction cbrtBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, cbrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default cbrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport cbrt from './cbrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( cbrt, 'ndarray', ndarray );\nsetProps( meta, types, cbrt, false );\nsetProps( meta, types, cbrt.ndarray, true );\n\n\n// EXPORTS //\n\nexport default cbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the cube root of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/cbrt-by\n*\n* @example\n* import cbrtBy from '@stdlib/math/strided/special/cbrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 9.0, -27.0, 81.0, -125.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cbrtBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*\n* @example\n* import cbrtBy from '@stdlib/math/strided/special/cbrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 9.0, -27.0, 81.0, -125.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cbrtBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 1.0, 9.0, -27.0, 81.0, -125.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cbrtBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\nfunction cbrtBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, cbrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default cbrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport ceil from './../../../../base/special/ceil';\nimport ceilf from './../../../../base/special/ceilf';\nimport identity from './../../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tceil,\n\tceil,\n\n\t// float32\n\tceilf,\n\tceil,\n\tceil,\n\n\t// generic\n\tceil,\n\n\t// int32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward positive infinity and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ceil( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction ceil( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward positive infinity and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ceil( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction ceil( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the cosine for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~-1.0, ~-1.0, ~-0.839, ~-0.76 ]\n*/\nfunction cosBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, cos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default cosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dabs( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dabs( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, abs );\n}\n\n\n// EXPORTS //\n\nexport default dabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dabs2( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction dabs2( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, abs2 );\n}\n\n\n// EXPORTS //\n\nexport default dabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrt( x.length, x, 1, y, 1 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction dcbrt( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, cbrt );\n}\n\n\n// EXPORTS //\n\nexport default dcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element retrieved from an input double-precision floating-point strided array via a callback function and assigns each result to an element in an output double-precision floating-point strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Float64Array} destination array\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = new Float64Array( [ 1.0, 9.0, -27.0, 81.0, -125.0 ] );\n* var out = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrtBy( x.length, x, 1, out, 1, accessor );\n* // out => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\nfunction dcbrtBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, cbrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default dcbrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward positive infinity and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dceil( x.length, x, 1, y, 1 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction dceil( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, ceil );\n}\n\n\n// EXPORTS //\n\nexport default dceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Converts each element in a double-precision floating-point strided array `x` from degrees to radians and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ddeg2rad( x.length, x, 1, y, 1 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\nfunction ddeg2rad( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, deg2rad );\n}\n\n\n// EXPORTS //\n\nexport default ddeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport ceil from './ceil.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( ceil, 'ndarray', ndarray );\nsetProps( meta, types, ceil, false );\nsetProps( meta, types, ceil.ndarray, true );\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the cosine for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/cos-by\n*\n* @example\n* import cosBy from '@stdlib/math/strided/special/cos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cosBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~-1.0, ~-1.0, ~-0.839, ~-0.76 ]\n*\n* @example\n* import cosBy from '@stdlib/math/strided/special/cos-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cosBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~-1.0, ~-1.0, ~-0.839, ~-0.76 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport cos from './../../../../base/special/cos';\n\n\n// MAIN //\n\n/**\n* Computes the cosine for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* cosBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 1.0, ~-1.0, ~-1.0, ~-0.839, ~-0.76 ]\n*/\nfunction cosBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, cos, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default cosBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dabs from './dabs.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dabs, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dabs( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dabs( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, abs );\n}\n\n\n// EXPORTS //\n\nexport default dabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dabs2 from './dabs2.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dabs2, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dabs2( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction dabs2( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, abs2 );\n}\n\n\n// EXPORTS //\n\nexport default dabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dcbrt from './dcbrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dcbrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction dcbrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, cbrt );\n}\n\n\n// EXPORTS //\n\nexport default dcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the cube root of each element retrieved from an input double-precision floating-point strided array via a callback function and assign each result to an element in an output double-precision floating-point strided array.\n*\n* @module @stdlib/math/strided/special/dcbrt-by\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dcbrtBy from '@stdlib/math/strided/special/dcbrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = new Float64Array( [ 1.0, 9.0, -27.0, 81.0, -125.0 ] );\n* var out = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrtBy( x.length, x, 1, out, 1, accessor );\n* // out => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import dcbrtBy from '@stdlib/math/strided/special/dcbrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = new Float64Array( [ 1.0, 9.0, -27.0, 81.0, -125.0 ] );\n* var out = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrtBy.ndarray( x.length, x, 1, 0, out, 1, 0, accessor );\n* // out => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element retrieved from an input double-precision floating-point strided array via a callback function and assigns each result to an element in an output double-precision floating-point strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Float64Array} destination array\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = new Float64Array( [ 1.0, 9.0, -27.0, 81.0, -125.0 ] );\n* var out = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dcbrtBy( x.length, x, 1, 0, out, 1, 0, accessor );\n* // out => [ 1.0, ~2.08, -3.0, ~4.327, -5.0 ]\n*/\nfunction dcbrtBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, cbrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default dcbrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dceil from './dceil.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dceil, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward positive infinity and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dceil( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction dceil( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, ceil );\n}\n\n\n// EXPORTS //\n\nexport default dceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport ddeg2rad from './ddeg2rad.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( ddeg2rad, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default ddeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Converts each element in a double-precision floating-point strided array `x` from degrees to radians and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ddeg2rad( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\nfunction ddeg2rad( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, deg2rad );\n}\n\n\n// EXPORTS //\n\nexport default ddeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport deg2rad from './../../../../base/special/deg2rad';\nimport deg2radf from './../../../../base/special/deg2radf';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tdeg2rad,\n\tdeg2rad,\n\n\t// float32\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad,\n\n\t// generic\n\tdeg2rad,\n\n\t// int32\n\tdeg2rad,\n\tdeg2rad,\n\n\t// int16\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad,\n\n\t// int8\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad,\n\n\t// uint32\n\tdeg2rad,\n\tdeg2rad,\n\n\t// uint16\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad,\n\n\t// uint8\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad,\n\n\t// uint8c\n\tdeg2radf,\n\tdeg2rad,\n\tdeg2rad\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Converts each element in a strided array `x` from degrees to radians and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 90.0, 120.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* deg2rad( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.571, ~2.094 ]\n*/\nfunction deg2rad( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default deg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Converts each element in a strided array `x` from degrees to radians and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 90.0, 120.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* deg2rad( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.571, ~2.094 ]\n*/\nfunction deg2rad( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) { // eslint-disable-line max-len\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default deg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward negative infinity and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.1, 1.1, 3.8, 4.5, 5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dfloor( x.length, x, 1, y, 1 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dfloor( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, floor );\n}\n\n\n// EXPORTS //\n\nexport default dfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport inv from './../../../../base/special/inv';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dinv( x.length, x, 1, y, 1 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\nfunction dinv( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, inv );\n}\n\n\n// EXPORTS //\n\nexport default dinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskabs( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\nfunction dmskabs( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, abs );\n}\n\n\n// EXPORTS //\n\nexport default dmskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskabs2( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\nfunction dmskabs2( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, abs2 );\n}\n\n\n// EXPORTS //\n\nexport default dmskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskcbrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\nfunction dmskcbrt( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, cbrt );\n}\n\n\n// EXPORTS //\n\nexport default dmskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskceil( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskceil( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, ceil );\n}\n\n\n// EXPORTS //\n\nexport default dmskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Converts each element in a double-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskdeg2rad( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\nfunction dmskdeg2rad( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, deg2rad );\n}\n\n\n// EXPORTS //\n\nexport default dmskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskfloor( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskfloor( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, floor );\n}\n\n\n// EXPORTS //\n\nexport default dmskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport inv from './../../../../base/special/inv';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskinv( x.length, x, 1, m, 1, y, 1 );\n* // y => [ -0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\nfunction dmskinv( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, inv );\n}\n\n\n// EXPORTS //\n\nexport default dmskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport ramp from './../../../../base/special/ramp';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskramp( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskramp( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, ramp );\n}\n\n\n// EXPORTS //\n\nexport default dmskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport rsqrt from './../../../../base/special/rsqrt';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskrsqrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\nfunction dmskrsqrt( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, rsqrt );\n}\n\n\n// EXPORTS //\n\nexport default dmskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmsksqrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\nfunction dmsksqrt( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, sqrt );\n}\n\n\n// EXPORTS //\n\nexport default dmsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmskmap from '@stdlib/strided/base/dmskmap';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward zero according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmsktrunc( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmsktrunc( N, x, sx, m, sm, y, sy ) {\n\treturn dmskmap( N, x, sx, m, sm, y, sy, trunc );\n}\n\n\n// EXPORTS //\n\nexport default dmsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport ramp from './../../../../base/special/ramp';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dramp( x.length, x, 1, y, 1 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction dramp( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, ramp );\n}\n\n\n// EXPORTS //\n\nexport default dramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport rsqrt from './../../../../base/special/rsqrt';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* drsqrt( x.length, x, 1, y, 1 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction drsqrt( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, rsqrt );\n}\n\n\n// EXPORTS //\n\nexport default drsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dsqrt( x.length, x, 1, y, 1 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction dsqrt( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, sqrt );\n}\n\n\n// EXPORTS //\n\nexport default dsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dmap from '@stdlib/strided/base/dmap';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward zero and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dtrunc( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction dtrunc( N, x, strideX, y, strideY ) {\n\treturn dmap( N, x, strideX, y, strideY, trunc );\n}\n\n\n// EXPORTS //\n\nexport default dtrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport deg2rad from './deg2rad.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( deg2rad, 'ndarray', ndarray );\nsetProps( meta, types, deg2rad, false );\nsetProps( meta, types, deg2rad.ndarray, true );\n\n\n// EXPORTS //\n\nexport default deg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dfloor from './dfloor.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dfloor, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward negative infinity and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.1, 1.1, 3.8, 4.5, 5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dfloor( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dfloor( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, floor );\n}\n\n\n// EXPORTS //\n\nexport default dfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dinv from './dinv.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dinv, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport inv from './../../../../base/special/inv';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dinv( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\nfunction dinv( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, inv );\n}\n\n\n// EXPORTS //\n\nexport default dinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskabs from './dmskabs.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskabs, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskabs( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\nfunction dmskabs( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, abs );\n}\n\n\n// EXPORTS //\n\nexport default dmskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskabs2 from './dmskabs2.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskabs2, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport abs2 from './../../../../base/special/abs2';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskabs2( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\nfunction dmskabs2( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, abs2 );\n}\n\n\n// EXPORTS //\n\nexport default dmskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskcbrt from './dmskcbrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskcbrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport cbrt from './../../../../base/special/cbrt';\n\n\n// MAIN //\n\n/**\n* Computes the cube root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskcbrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\nfunction dmskcbrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, cbrt );\n}\n\n\n// EXPORTS //\n\nexport default dmskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskceil from './dmskceil.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskceil, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport ceil from './../../../../base/special/ceil';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskceil( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskceil( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, ceil );\n}\n\n\n// EXPORTS //\n\nexport default dmskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskdeg2rad from './dmskdeg2rad.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskdeg2rad, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport deg2rad from './../../../../base/special/deg2rad';\n\n\n// MAIN //\n\n/**\n* Converts each element in a double-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskdeg2rad( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\nfunction dmskdeg2rad( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, deg2rad );\n}\n\n\n// EXPORTS //\n\nexport default dmskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskfloor from './dmskfloor.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskfloor, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport floor from './../../../../base/special/floor';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskfloor( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskfloor( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, floor );\n}\n\n\n// EXPORTS //\n\nexport default dmskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskinv from './dmskinv.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskinv, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport inv from './../../../../base/special/inv';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskinv( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\nfunction dmskinv( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, inv );\n}\n\n\n// EXPORTS //\n\nexport default dmskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskramp from './dmskramp.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskramp, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport ramp from './../../../../base/special/ramp';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskramp( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction dmskramp( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, ramp );\n}\n\n\n// EXPORTS //\n\nexport default dmskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmskrsqrt from './dmskrsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmskrsqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport rsqrt from './../../../../base/special/rsqrt';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmskrsqrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\nfunction dmskrsqrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, rsqrt );\n}\n\n\n// EXPORTS //\n\nexport default dmskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmsksqrt from './dmsksqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmsksqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a double-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmsksqrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\nfunction dmsksqrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, sqrt );\n}\n\n\n// EXPORTS //\n\nexport default dmsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dmsktrunc from './dmsktrunc.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dmsktrunc, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dmsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmskmap } from '@stdlib/strided/base/dmskmap';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward zero according to a strided mask array and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float64Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dmsktrunc( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction dmsktrunc( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn dmskmap( N, x, sx, ox, m, sm, om, y, sy, oy, trunc );\n}\n\n\n// EXPORTS //\n\nexport default dmsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dramp from './dramp.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dramp, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport ramp from './../../../../base/special/ramp';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dramp( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction dramp( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, ramp );\n}\n\n\n// EXPORTS //\n\nexport default dramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport drsqrt from './drsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( drsqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default drsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport rsqrt from './../../../../base/special/rsqrt';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* drsqrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction drsqrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, rsqrt );\n}\n\n\n// EXPORTS //\n\nexport default drsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dsqrt from './dsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dsqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a double-precision floating-point strided array `x` and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dsqrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction dsqrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, sqrt );\n}\n\n\n// EXPORTS //\n\nexport default dsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport dtrunc from './dtrunc.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( dtrunc, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default dtrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as dmap } from '@stdlib/strided/base/dmap';\nimport trunc from './../../../../base/special/trunc';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a double-precision floating-point strided array `x` toward zero and assigns the results to elements in a double-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float64Array} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* dtrunc( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction dtrunc( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn dmap( N, x, strideX, offsetX, y, strideY, offsetY, trunc );\n}\n\n\n// EXPORTS //\n\nexport default dtrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport floor from './../../../../base/special/floor';\nimport floorf from './../../../../base/special/floorf';\nimport identity from './../../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tfloor,\n\tfloor,\n\n\t// float32\n\tfloorf,\n\tfloor,\n\tfloor,\n\n\t// generic\n\tfloor,\n\n\t// int32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward negative infinity and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.5, 2.3, -3.9, 4.2, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* floor( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ -2.0, 2.0, -4.0, 4.0, -5.0 ]\n*/\nfunction floor( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward negative infinity and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -1.5, 2.3, -3.9, 4.2, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* floor( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ -2.0, 2.0, -4.0, 4.0, -5.0 ]\n*/\nfunction floor( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport floor from './floor.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( floor, 'ndarray', ndarray );\nsetProps( meta, types, floor, false );\nsetProps( meta, types, floor.ndarray, true );\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport inv from './../../../../base/special/inv';\nimport invf from './../../../../base/special/invf';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tinv,\n\tinv,\n\n\t// float32\n\tinvf,\n\tinv,\n\tinv,\n\n\t// generic\n\tinv,\n\n\t// int32\n\tinv,\n\tinv,\n\n\t// int16\n\tinvf,\n\tinv,\n\tinv,\n\n\t// int8\n\tinvf,\n\tinv,\n\tinv,\n\n\t// uint32\n\tinv,\n\tinv,\n\n\t// uint16\n\tinvf,\n\tinv,\n\tinv,\n\n\t// uint8\n\tinvf,\n\tinv,\n\tinv,\n\n\t// uint8c\n\tinvf,\n\tinv,\n\tinv\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* inv( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\nfunction inv( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default inv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* inv( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ -0.05, -1.0, 0.5, 0.25, 0.1 ]\n*/\nfunction inv( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default inv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport inv from './inv.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( inv, 'ndarray', ndarray );\nsetProps( meta, types, inv, false );\nsetProps( meta, types, inv.ndarray, true );\n\n\n// EXPORTS //\n\nexport default inv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport ramp from './../../../../base/special/ramp';\nimport rampf from './../../../../base/special/rampf';\nimport identity from './../../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tramp,\n\tramp,\n\n\t// float32\n\trampf,\n\trampf,\n\trampf,\n\n\t// generic\n\tramp,\n\n\t// int32\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\n\t// int16\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\n\t// int8\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\tramp,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ramp( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction ramp( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ramp( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.1, 2.5, 0.0, 4.0, 0.0 ]\n*/\nfunction ramp( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport ramp from './ramp.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( ramp, 'ndarray', ndarray );\nsetProps( meta, types, ramp, false );\nsetProps( meta, types, ramp.ndarray, true );\n\n\n// EXPORTS //\n\nexport default ramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport rsqrt from './../../../../base/special/rsqrt';\nimport rsqrtf from './../../../../base/special/rsqrtf';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\trsqrt,\n\trsqrt,\n\n\t// float32\n\trsqrtf,\n\trsqrt,\n\trsqrt,\n\n\t// generic\n\trsqrt,\n\n\t// int32\n\trsqrt,\n\trsqrt,\n\n\t// int16\n\trsqrtf,\n\trsqrt,\n\trsqrt,\n\n\t// int8\n\trsqrtf,\n\trsqrt,\n\trsqrt,\n\n\t// uint32\n\trsqrt,\n\trsqrt,\n\n\t// uint16\n\trsqrtf,\n\trsqrt,\n\trsqrt,\n\n\t// uint8\n\trsqrtf,\n\trsqrt,\n\trsqrt,\n\n\t// uint8c\n\trsqrtf,\n\trsqrt,\n\trsqrt\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* rsqrt( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction rsqrt( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default rsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* rsqrt( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ Infinity, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction rsqrt( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default rsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sabs( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction sabs( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, abs );\n}\n\n\n// EXPORTS //\n\nexport default sabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport abs2f from './../../../../base/special/abs2f';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sabs2( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction sabs2( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, abs2f );\n}\n\n\n// EXPORTS //\n\nexport default sabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport cbrtf from './../../../../base/special/cbrtf';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* scbrt( x.length, x, 1, y, 1 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction scbrt( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, cbrtf );\n}\n\n\n// EXPORTS //\n\nexport default scbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport ceilf from './../../../../base/special/ceilf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward positive infinity and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sceil( x.length, x, 1, y, 1 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction sceil( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, ceilf );\n}\n\n\n// EXPORTS //\n\nexport default sceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport deg2radf from './../../../../base/special/deg2radf';\n\n\n// MAIN //\n\n/**\n* Converts each element in a single-precision floating-point strided array `x` from degrees to radians and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sdeg2rad( x.length, x, 1, y, 1 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\nfunction sdeg2rad( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, deg2radf );\n}\n\n\n// EXPORTS //\n\nexport default sdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport floorf from './../../../../base/special/floorf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward negative infinity and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.1, 1.1, 3.8, 4.5, 5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sfloor( x.length, x, 1, y, 1 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\nfunction sfloor( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, floorf );\n}\n\n\n// EXPORTS //\n\nexport default sfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.002, ~-0.002, ~-0.544, ~-0.65 ]\n*/\nfunction sinBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, sin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default sinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport invf from './../../../../base/special/invf';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sinv( x.length, x, 1, y, 1 );\n* // y => [ ~-0.05, -1.0, 0.5, 0.25, ~0.1 ]\n*/\nfunction sinv( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, invf );\n}\n\n\n// EXPORTS //\n\nexport default sinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport absf from './../../../../base/special/absf';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskabs( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\nfunction smskabs( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, absf );\n}\n\n\n// EXPORTS //\n\nexport default smskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport abs2f from './../../../../base/special/abs2f';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskabs2( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\nfunction smskabs2( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, abs2f );\n}\n\n\n// EXPORTS //\n\nexport default smskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport cbrtf from './../../../../base/special/cbrtf';\n\n\n// MAIN //\n\n/**\n* Computes the cube root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskcbrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\nfunction smskcbrt( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, cbrtf );\n}\n\n\n// EXPORTS //\n\nexport default smskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport ceilf from './../../../../base/special/ceilf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskceil( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskceil( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, ceilf );\n}\n\n\n// EXPORTS //\n\nexport default smskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport deg2radf from './../../../../base/special/deg2radf';\n\n\n// MAIN //\n\n/**\n* Converts each element in a single-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskdeg2rad( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\nfunction smskdeg2rad( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, deg2radf );\n}\n\n\n// EXPORTS //\n\nexport default smskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport floorf from './../../../../base/special/floorf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskfloor( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskfloor( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, floorf );\n}\n\n\n// EXPORTS //\n\nexport default smskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport invf from './../../../../base/special/invf';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskinv( x.length, x, 1, m, 1, y, 1 );\n* // y => [ ~-0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\nfunction smskinv( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, invf );\n}\n\n\n// EXPORTS //\n\nexport default smskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport rampf from './../../../../base/special/rampf';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.0, 2.0, -3.0, 4.0, -5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskramp( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskramp( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, rampf );\n}\n\n\n// EXPORTS //\n\nexport default smskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport rsqrtf from './../../../../base/special/rsqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskrsqrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\nfunction smskrsqrt( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, rsqrtf );\n}\n\n\n// EXPORTS //\n\nexport default smskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport sqrtf from './../../../../base/special/sqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smsksqrt( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\nfunction smsksqrt( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, sqrtf );\n}\n\n\n// EXPORTS //\n\nexport default smsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smskmap from '@stdlib/strided/base/smskmap';\nimport truncf from './../../../../base/special/truncf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward zero according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smsktrunc( x.length, x, 1, m, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smsktrunc( N, x, sx, m, sm, y, sy ) {\n\treturn smskmap( N, x, sx, m, sm, y, sy, truncf );\n}\n\n\n// EXPORTS //\n\nexport default smsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport rsqrt from './rsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( rsqrt, 'ndarray', ndarray );\nsetProps( meta, types, rsqrt, false );\nsetProps( meta, types, rsqrt.ndarray, true );\n\n\n// EXPORTS //\n\nexport default rsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sabs from './sabs.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sabs, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport abs from './../../../../base/special/abs';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sabs( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction sabs( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, abs );\n}\n\n\n// EXPORTS //\n\nexport default sabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sabs2 from './sabs2.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sabs2, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport abs2f from './../../../../base/special/abs2f';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sabs2( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 4.0, 9.0, 16.0, 25.0 ]\n*/\nfunction sabs2( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, abs2f );\n}\n\n\n// EXPORTS //\n\nexport default sabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport scbrt from './scbrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( scbrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default scbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport cbrtf from './../../../../base/special/cbrtf';\n\n\n// MAIN //\n\n/**\n* Computes the cube root of each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* scbrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction scbrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, cbrtf );\n}\n\n\n// EXPORTS //\n\nexport default scbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sceil from './sceil.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sceil, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport ceilf from './../../../../base/special/ceilf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward positive infinity and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sceil( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, -3.0, 4.0, -5.0 ]\n*/\nfunction sceil( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, ceilf );\n}\n\n\n// EXPORTS //\n\nexport default sceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sdeg2rad from './sdeg2rad.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sdeg2rad, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport deg2radf from './../../../../base/special/deg2radf';\n\n\n// MAIN //\n\n/**\n* Converts each element in a single-precision floating-point strided array `x` from degrees to radians and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sdeg2rad( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, ~0.785, ~1.047, ~1.571 ]\n*/\nfunction sdeg2rad( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, deg2radf );\n}\n\n\n// EXPORTS //\n\nexport default sdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sfloor from './sfloor.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sfloor, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport floorf from './../../../../base/special/floorf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward negative infinity and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -1.1, 1.1, 3.8, 4.5, 5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sfloor( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ -2.0, 1.0, 3.0, 4.0, 5.0 ]\n*/\nfunction sfloor( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, floorf );\n}\n\n\n// EXPORTS //\n\nexport default sfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the sine of each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/sin-by\n*\n* @example\n* import sinBy from '@stdlib/math/strided/special/sin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sinBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.002, ~-0.002, ~-0.544, ~-0.65 ]\n*\n* @example\n* import sinBy from '@stdlib/math/strided/special/sin-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sinBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.002, ~-0.002, ~-0.544, ~-0.65 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport sin from './../../../../base/special/sin';\n\n\n// MAIN //\n\n/**\n* Computes the sine of each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 3.14, -3.14, 10.0, -15.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sinBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, ~0.002, ~-0.002, ~-0.544, ~-0.65 ]\n*/\nfunction sinBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, sin, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default sinBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sinv from './sinv.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sinv, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport invf from './../../../../base/special/invf';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sinv( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ ~-0.05, -1.0, 0.5, 0.25, ~0.1 ]\n*/\nfunction sinv( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, invf );\n}\n\n\n// EXPORTS //\n\nexport default sinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskabs from './smskabs.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskabs, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport absf from './../../../../base/special/absf';\n\n\n// MAIN //\n\n/**\n* Computes the absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskabs( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 1.0, 0.0, 5.0, 0.0 ]\n*/\nfunction smskabs( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, absf );\n}\n\n\n// EXPORTS //\n\nexport default smskabs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskabs2 from './smskabs2.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskabs2, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport abs2f from './../../../../base/special/abs2f';\n\n\n// MAIN //\n\n/**\n* Computes the squared absolute value for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -2.0, 1.0, -3.0, -5.0, 4.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskabs2( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 4.0, 1.0, 0.0, 25.0, 0.0 ]\n*/\nfunction smskabs2( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, abs2f );\n}\n\n\n// EXPORTS //\n\nexport default smskabs2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskcbrt from './smskcbrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskcbrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport cbrtf from './../../../../base/special/cbrtf';\n\n\n// MAIN //\n\n/**\n* Computes the cube root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 1.0, 8.0, 27.0, 64.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskcbrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 1.0, 0.0, 3.0, 0.0 ]\n*/\nfunction smskcbrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, cbrtf );\n}\n\n\n// EXPORTS //\n\nexport default smskcbrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskceil from './smskceil.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskceil, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport ceilf from './../../../../base/special/ceilf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward positive infinity according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskceil( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 2.0, 3.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskceil( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, ceilf );\n}\n\n\n// EXPORTS //\n\nexport default smskceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskdeg2rad from './smskdeg2rad.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskdeg2rad, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport deg2radf from './../../../../base/special/deg2radf';\n\n\n// MAIN //\n\n/**\n* Converts each element in a single-precision floating-point strided array `x` from degrees to radians according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 30.0, 45.0, 60.0, 90.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskdeg2rad( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, ~0.524, 0.0, ~1.047, 0.0 ]\n*/\nfunction smskdeg2rad( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, deg2radf );\n}\n\n\n// EXPORTS //\n\nexport default smskdeg2rad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskfloor from './smskfloor.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskfloor, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport floorf from './../../../../base/special/floorf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward negative infinity according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskfloor( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskfloor( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, floorf );\n}\n\n\n// EXPORTS //\n\nexport default smskfloor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskinv from './smskinv.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskinv, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport invf from './../../../../base/special/invf';\n\n\n// MAIN //\n\n/**\n* Computes the multiplicative inverse for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ -20.0, -1.0, 2.0, 4.0, 10.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskinv( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ ~-0.05, -1.0, 0.0, 0.25, 0.0 ]\n*/\nfunction smskinv( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, invf );\n}\n\n\n// EXPORTS //\n\nexport default smskinv;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskramp from './smskramp.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskramp, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport rampf from './../../../../base/special/rampf';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.0, 2.0, -3.0, 4.0, -5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskramp( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smskramp( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, rampf );\n}\n\n\n// EXPORTS //\n\nexport default smskramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smskrsqrt from './smskrsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smskrsqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport rsqrtf from './../../../../base/special/rsqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smskrsqrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ Infinity, 0.5, 0.0, ~0.289, 0.0 ]\n*/\nfunction smskrsqrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, rsqrtf );\n}\n\n\n// EXPORTS //\n\nexport default smskrsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smsksqrt from './smsksqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smsksqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport sqrtf from './../../../../base/special/sqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a single-precision floating-point strided array `x` according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smsksqrt( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 0.0, ~3.464, 0.0 ]\n*/\nfunction smsksqrt( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, sqrtf );\n}\n\n\n// EXPORTS //\n\nexport default smsksqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport smsktrunc from './smsktrunc.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( smsktrunc, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default smsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smskmap } from '@stdlib/strided/base/smskmap';\nimport truncf from './../../../../base/special/truncf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward zero according to a strided mask array and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} sx - `x` stride length\n* @param {NonNegativeInteger} ox - starting `x` index\n* @param {Uint8Array} m - mask array\n* @param {integer} sm - `m` stride length\n* @param {NonNegativeInteger} om - starting `m` index\n* @param {Float32Array} y - destination array\n* @param {integer} sy - `y` stride length\n* @param {NonNegativeInteger} oy - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n* import Uint8Array from '@stdlib/array/uint8';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 1 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* smsktrunc( x.length, x, 1, 0, m, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction smsktrunc( N, x, sx, ox, m, sm, om, y, sy, oy ) {\n\treturn smskmap( N, x, sx, ox, m, sm, om, y, sy, oy, truncf );\n}\n\n\n// EXPORTS //\n\nexport default smsktrunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport sqrt from './../../../../base/special/sqrt';\nimport sqrtf from './../../../../base/special/sqrtf';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\tsqrt,\n\tsqrt,\n\n\t// float32\n\tsqrtf,\n\tsqrt,\n\tsqrt,\n\n\t// generic\n\tsqrt,\n\n\t// int32\n\tsqrt,\n\tsqrt,\n\n\t// int16\n\tsqrtf,\n\tsqrt,\n\tsqrt,\n\n\t// int8\n\tsqrtf,\n\tsqrt,\n\tsqrt,\n\n\t// uint32\n\tsqrt,\n\tsqrt,\n\n\t// uint16\n\tsqrtf,\n\tsqrt,\n\tsqrt,\n\n\t// uint8\n\tsqrtf,\n\tsqrt,\n\tsqrt,\n\n\t// uint8c\n\tsqrtf,\n\tsqrt,\n\tsqrt\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sqrt( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction sqrt( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default sqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a strided array `x` and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sqrt( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction sqrt( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default sqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport mapBy from '@stdlib/strided/base/map-by';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 122.0, 50.0, 80.7 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sqrtBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, ~11.045, ~7.071, ~8.983 ]\n*/\nfunction sqrtBy( N, x, strideX, y, strideY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, y, strideY, sqrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default sqrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport rampf from './../../../../base/special/rampf';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.0, 2.0, -3.0, 4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sramp( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction sramp( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, rampf );\n}\n\n\n// EXPORTS //\n\nexport default sramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport rsqrtf from './../../../../base/special/rsqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* srsqrt( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction srsqrt( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, rsqrtf );\n}\n\n\n// EXPORTS //\n\nexport default srsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport sqrtf from './../../../../base/special/sqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ssqrt( x.length, x, 1, y, 1 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction ssqrt( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, sqrtf );\n}\n\n\n// EXPORTS //\n\nexport default ssqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport smap from '@stdlib/strided/base/smap';\nimport truncf from './../../../../base/special/truncf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward zero and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* strunc( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction strunc( N, x, strideX, y, strideY ) {\n\treturn smap( N, x, strideX, y, strideY, truncf );\n}\n\n\n// EXPORTS //\n\nexport default strunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport sqrt from './sqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sqrt, 'ndarray', ndarray );\nsetProps( meta, types, sqrt, false );\nsetProps( meta, types, sqrt.ndarray, true );\n\n\n// EXPORTS //\n\nexport default sqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the principal square root for each element retrieved from an input strided array `x` via a callback function and assign each result to an element in an output strided array `y`.\n*\n* @module @stdlib/math/strided/special/sqrt-by\n*\n* @example\n* import sqrtBy from '@stdlib/math/strided/special/sqrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 122.0, 50.0, 80.7 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sqrtBy( x.length, x, 1, y, 1, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, ~11.045, ~7.071, ~8.983 ]\n*\n* @example\n* import sqrtBy from '@stdlib/math/strided/special/sqrt-by';\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 122.0, 50.0, 80.7 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sqrtBy.ndarray( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, ~11.045, ~7.071, ~8.983 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as mapBy } from '@stdlib/strided/base/map-by';\nimport sqrt from './../../../../base/special/sqrt';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element retrieved from an input strided array `x` via a callback function and assigns each result to an element in an output strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* function accessor( v ) {\n* return v;\n* }\n*\n* var x = [ 0.0, 1.0, 122.0, 50.0, 80.7 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* sqrtBy( x.length, x, 1, 0, y, 1, 0, accessor );\n*\n* console.log( y );\n* // => [ 0.0, 1.0, ~11.045, ~7.071, ~8.983 ]\n*/\nfunction sqrtBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, sqrt, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default sqrtBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport sramp from './sramp.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( sramp, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default sramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport rampf from './../../../../base/special/rampf';\n\n\n// MAIN //\n\n/**\n* Evaluates the ramp function for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.0, 2.0, -3.0, 4.0, -5.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* sramp( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 0.0, 4.0, 0.0 ]\n*/\nfunction sramp( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, rampf );\n}\n\n\n// EXPORTS //\n\nexport default sramp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport srsqrt from './srsqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( srsqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default srsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport rsqrtf from './../../../../base/special/rsqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the reciprocal square root for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* srsqrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 0.5, ~0.333, ~0.289, ~0.204 ]\n*/\nfunction srsqrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, rsqrtf );\n}\n\n\n// EXPORTS //\n\nexport default srsqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport ssqrt from './ssqrt.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( ssqrt, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default ssqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport sqrtf from './../../../../base/special/sqrtf';\n\n\n// MAIN //\n\n/**\n* Computes the principal square root for each element in a single-precision floating-point strided array `x` and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 0.0, 4.0, 9.0, 12.0, 24.0 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* ssqrt( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 0.0, 2.0, 3.0, ~3.464, ~4.899 ]\n*/\nfunction ssqrt( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, sqrtf );\n}\n\n\n// EXPORTS //\n\nexport default ssqrt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport strunc from './strunc.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( strunc, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default strunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as smap } from '@stdlib/strided/base/smap';\nimport truncf from './../../../../base/special/truncf';\n\n\n// MAIN //\n\n/**\n* Rounds each element in a single-precision floating-point strided array `x` toward zero and assigns the results to elements in a single-precision floating-point strided array `y`.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Float32Array} `y`\n*\n* @example\n* import Float32Array from '@stdlib/array/float32';\n*\n* var x = new Float32Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float32Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* strunc( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction strunc( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\treturn smap( N, x, strideX, offsetX, y, strideY, offsetY, truncf );\n}\n\n\n// EXPORTS //\n\nexport default strunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/capitalized-comments */\n\n'use strict';\n\n// MODULES //\n\nimport trunc from './../../../../base/special/trunc';\nimport truncf from './../../../../base/special/truncf';\nimport identity from './../../../../base/special/identity';\n\n\n// MAIN //\n\nvar data = [\n\t// NOTE: the following **must** match the order in `./types.json`. The order should be according to likelihood of use (e.g., if `float64` arrays are more likely, then `float64` types/data should come before `uint8`).\n\n\t// float64\n\ttrunc,\n\ttrunc,\n\n\t// float32\n\ttruncf,\n\ttrunc,\n\ttrunc,\n\n\t// generic\n\ttrunc,\n\n\t// int32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// int8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint32\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint16\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\n\t// uint8c\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity,\n\tidentity\n];\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport unary from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs, meta.nin, meta.nout );\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward zero and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} sixth argument must be an array-like object\n* @throws {TypeError} seventh argument must be an integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} sixth argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* trunc( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction trunc( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, resolve( dtypeY ), y, strideY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dispatch from '@stdlib/strided/dispatch';\nimport { ndarray as unary } from '@stdlib/strided/base/unary';\nimport resolve from '@stdlib/strided/base/dtype-resolve-enum';\nimport types from './types.json';\nimport meta from './meta.json';\nimport data from './data.js';\n\n\n// VARIABLES //\n\nvar fcn = dispatch( unary, types, data, meta.nargs+meta.nin+meta.nout, meta.nin, meta.nout ); // eslint-disable-line max-len\n\n\n// MAIN //\n\n/**\n* Rounds each element in a strided array `x` toward zero and assigns the results to elements in a strided array `y`.\n*\n* @param {integer} N - number of indexed elements\n* @param {*} dtypeX - `x` data type\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {*} dtypeY - `y` data type\n* @param {Collection} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} fourth argument must be an integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} seventh argument must be an array-like object\n* @throws {TypeError} eighth argument must be an integer\n* @throws {TypeError} ninth argument must be a nonnegative integer\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {RangeError} third argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {RangeError} seventh argument has insufficient elements based on the associated stride and the number of indexed elements\n* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n* @returns {Collection} `y`\n*\n* @example\n* import Float64Array from '@stdlib/array/float64';\n*\n* var x = new Float64Array( [ 1.1, 2.5, -3.5, 4.0, -5.9 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* trunc( x.length, 'float64', x, 1, 0, 'float64', y, 1, 0 );\n* // y => [ 1.0, 2.0, -3.0, 4.0, -5.0 ]\n*/\nfunction trunc( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n\treturn fcn( N, resolve( dtypeX ), x, strideX, offsetX, resolve( dtypeY ), y, strideY, offsetY ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-nonenumerable-read-only-property';\nimport setProps from '@stdlib/strided/base/meta-data-props';\nimport meta from './meta.json';\nimport types from './types.json';\nimport trunc from './trunc.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( trunc, 'ndarray', ndarray );\nsetProps( meta, types, trunc, false );\nsetProps( meta, types, trunc.ndarray, true );\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name abs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/abs}\n*/\nimport abs from './../../../strided/special/abs';\nsetReadOnly( ns, 'abs', abs );\n\n/**\n* @name absBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/abs-by}\n*/\nimport absBy from './../../../strided/special/abs-by';\nsetReadOnly( ns, 'absBy', absBy );\n\n/**\n* @name abs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/abs2}\n*/\nimport abs2 from './../../../strided/special/abs2';\nsetReadOnly( ns, 'abs2', abs2 );\n\n/**\n* @name abs2By\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/abs2-by}\n*/\nimport abs2By from './../../../strided/special/abs2-by';\nsetReadOnly( ns, 'abs2By', abs2By );\n\n/**\n* @name acosBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acos-by}\n*/\nimport acosBy from './../../../strided/special/acos-by';\nsetReadOnly( ns, 'acosBy', acosBy );\n\n/**\n* @name acoshBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acosh-by}\n*/\nimport acoshBy from './../../../strided/special/acosh-by';\nsetReadOnly( ns, 'acoshBy', acoshBy );\n\n/**\n* @name acotBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acot-by}\n*/\nimport acotBy from './../../../strided/special/acot-by';\nsetReadOnly( ns, 'acotBy', acotBy );\n\n/**\n* @name acothBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acoth-by}\n*/\nimport acothBy from './../../../strided/special/acoth-by';\nsetReadOnly( ns, 'acothBy', acothBy );\n\n/**\n* @name acovercosBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acovercos-by}\n*/\nimport acovercosBy from './../../../strided/special/acovercos-by';\nsetReadOnly( ns, 'acovercosBy', acovercosBy );\n\n/**\n* @name acoversinBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/acoversin-by}\n*/\nimport acoversinBy from './../../../strided/special/acoversin-by';\nsetReadOnly( ns, 'acoversinBy', acoversinBy );\n\n/**\n* @name ahavercosBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ahavercos-by}\n*/\nimport ahavercosBy from './../../../strided/special/ahavercos-by';\nsetReadOnly( ns, 'ahavercosBy', ahavercosBy );\n\n/**\n* @name ahaversinBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ahaversin-by}\n*/\nimport ahaversinBy from './../../../strided/special/ahaversin-by';\nsetReadOnly( ns, 'ahaversinBy', ahaversinBy );\n\n/**\n* @name asinBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/asin-by}\n*/\nimport asinBy from './../../../strided/special/asin-by';\nsetReadOnly( ns, 'asinBy', asinBy );\n\n/**\n* @name asinhBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/asinh-by}\n*/\nimport asinhBy from './../../../strided/special/asinh-by';\nsetReadOnly( ns, 'asinhBy', asinhBy );\n\n/**\n* @name atanBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/atan-by}\n*/\nimport atanBy from './../../../strided/special/atan-by';\nsetReadOnly( ns, 'atanBy', atanBy );\n\n/**\n* @name atanhBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/atanh-by}\n*/\nimport atanhBy from './../../../strided/special/atanh-by';\nsetReadOnly( ns, 'atanhBy', atanhBy );\n\n/**\n* @name avercosBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/avercos-by}\n*/\nimport avercosBy from './../../../strided/special/avercos-by';\nsetReadOnly( ns, 'avercosBy', avercosBy );\n\n/**\n* @name aversinBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/aversin-by}\n*/\nimport aversinBy from './../../../strided/special/aversin-by';\nsetReadOnly( ns, 'aversinBy', aversinBy );\n\n/**\n* @name besselj0By\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/besselj0-by}\n*/\nimport besselj0By from './../../../strided/special/besselj0-by';\nsetReadOnly( ns, 'besselj0By', besselj0By );\n\n/**\n* @name besselj1By\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/besselj1-by}\n*/\nimport besselj1By from './../../../strided/special/besselj1-by';\nsetReadOnly( ns, 'besselj1By', besselj1By );\n\n/**\n* @name bessely0By\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/bessely0-by}\n*/\nimport bessely0By from './../../../strided/special/bessely0-by';\nsetReadOnly( ns, 'bessely0By', bessely0By );\n\n/**\n* @name bessely1By\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/bessely1-by}\n*/\nimport bessely1By from './../../../strided/special/bessely1-by';\nsetReadOnly( ns, 'bessely1By', bessely1By );\n\n/**\n* @name binetBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/binet-by}\n*/\nimport binetBy from './../../../strided/special/binet-by';\nsetReadOnly( ns, 'binetBy', binetBy );\n\n/**\n* @name cbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/cbrt}\n*/\nimport cbrt from './../../../strided/special/cbrt';\nsetReadOnly( ns, 'cbrt', cbrt );\n\n/**\n* @name cbrtBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/cbrt-by}\n*/\nimport cbrtBy from './../../../strided/special/cbrt-by';\nsetReadOnly( ns, 'cbrtBy', cbrtBy );\n\n/**\n* @name ceil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ceil}\n*/\nimport ceil from './../../../strided/special/ceil';\nsetReadOnly( ns, 'ceil', ceil );\n\n/**\n* @name cosBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/cos-by}\n*/\nimport cosBy from './../../../strided/special/cos-by';\nsetReadOnly( ns, 'cosBy', cosBy );\n\n/**\n* @name dabs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dabs}\n*/\nimport dabs from './../../../strided/special/dabs';\nsetReadOnly( ns, 'dabs', dabs );\n\n/**\n* @name dabs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dabs2}\n*/\nimport dabs2 from './../../../strided/special/dabs2';\nsetReadOnly( ns, 'dabs2', dabs2 );\n\n/**\n* @name dcbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dcbrt}\n*/\nimport dcbrt from './../../../strided/special/dcbrt';\nsetReadOnly( ns, 'dcbrt', dcbrt );\n\n/**\n* @name dcbrtBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dcbrt-by}\n*/\nimport dcbrtBy from './../../../strided/special/dcbrt-by';\nsetReadOnly( ns, 'dcbrtBy', dcbrtBy );\n\n/**\n* @name dceil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dceil}\n*/\nimport dceil from './../../../strided/special/dceil';\nsetReadOnly( ns, 'dceil', dceil );\n\n/**\n* @name ddeg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ddeg2rad}\n*/\nimport ddeg2rad from './../../../strided/special/ddeg2rad';\nsetReadOnly( ns, 'ddeg2rad', ddeg2rad );\n\n/**\n* @name deg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/deg2rad}\n*/\nimport deg2rad from './../../../strided/special/deg2rad';\nsetReadOnly( ns, 'deg2rad', deg2rad );\n\n/**\n* @name dfloor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dfloor}\n*/\nimport dfloor from './../../../strided/special/dfloor';\nsetReadOnly( ns, 'dfloor', dfloor );\n\n/**\n* @name dinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dinv}\n*/\nimport dinv from './../../../strided/special/dinv';\nsetReadOnly( ns, 'dinv', dinv );\n\n/**\n* @name dmskabs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskabs}\n*/\nimport dmskabs from './../../../strided/special/dmskabs';\nsetReadOnly( ns, 'dmskabs', dmskabs );\n\n/**\n* @name dmskabs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskabs2}\n*/\nimport dmskabs2 from './../../../strided/special/dmskabs2';\nsetReadOnly( ns, 'dmskabs2', dmskabs2 );\n\n/**\n* @name dmskcbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskcbrt}\n*/\nimport dmskcbrt from './../../../strided/special/dmskcbrt';\nsetReadOnly( ns, 'dmskcbrt', dmskcbrt );\n\n/**\n* @name dmskceil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskceil}\n*/\nimport dmskceil from './../../../strided/special/dmskceil';\nsetReadOnly( ns, 'dmskceil', dmskceil );\n\n/**\n* @name dmskdeg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskdeg2rad}\n*/\nimport dmskdeg2rad from './../../../strided/special/dmskdeg2rad';\nsetReadOnly( ns, 'dmskdeg2rad', dmskdeg2rad );\n\n/**\n* @name dmskfloor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskfloor}\n*/\nimport dmskfloor from './../../../strided/special/dmskfloor';\nsetReadOnly( ns, 'dmskfloor', dmskfloor );\n\n/**\n* @name dmskinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskinv}\n*/\nimport dmskinv from './../../../strided/special/dmskinv';\nsetReadOnly( ns, 'dmskinv', dmskinv );\n\n/**\n* @name dmskramp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskramp}\n*/\nimport dmskramp from './../../../strided/special/dmskramp';\nsetReadOnly( ns, 'dmskramp', dmskramp );\n\n/**\n* @name dmskrsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmskrsqrt}\n*/\nimport dmskrsqrt from './../../../strided/special/dmskrsqrt';\nsetReadOnly( ns, 'dmskrsqrt', dmskrsqrt );\n\n/**\n* @name dmsksqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmsksqrt}\n*/\nimport dmsksqrt from './../../../strided/special/dmsksqrt';\nsetReadOnly( ns, 'dmsksqrt', dmsksqrt );\n\n/**\n* @name dmsktrunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dmsktrunc}\n*/\nimport dmsktrunc from './../../../strided/special/dmsktrunc';\nsetReadOnly( ns, 'dmsktrunc', dmsktrunc );\n\n/**\n* @name dramp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dramp}\n*/\nimport dramp from './../../../strided/special/dramp';\nsetReadOnly( ns, 'dramp', dramp );\n\n/**\n* @name drsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/drsqrt}\n*/\nimport drsqrt from './../../../strided/special/drsqrt';\nsetReadOnly( ns, 'drsqrt', drsqrt );\n\n/**\n* @name dsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dsqrt}\n*/\nimport dsqrt from './../../../strided/special/dsqrt';\nsetReadOnly( ns, 'dsqrt', dsqrt );\n\n/**\n* @name dtrunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/dtrunc}\n*/\nimport dtrunc from './../../../strided/special/dtrunc';\nsetReadOnly( ns, 'dtrunc', dtrunc );\n\n/**\n* @name floor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/floor}\n*/\nimport floor from './../../../strided/special/floor';\nsetReadOnly( ns, 'floor', floor );\n\n/**\n* @name inv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/inv}\n*/\nimport inv from './../../../strided/special/inv';\nsetReadOnly( ns, 'inv', inv );\n\n/**\n* @name ramp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ramp}\n*/\nimport ramp from './../../../strided/special/ramp';\nsetReadOnly( ns, 'ramp', ramp );\n\n/**\n* @name rsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/rsqrt}\n*/\nimport rsqrt from './../../../strided/special/rsqrt';\nsetReadOnly( ns, 'rsqrt', rsqrt );\n\n/**\n* @name sabs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sabs}\n*/\nimport sabs from './../../../strided/special/sabs';\nsetReadOnly( ns, 'sabs', sabs );\n\n/**\n* @name sabs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sabs2}\n*/\nimport sabs2 from './../../../strided/special/sabs2';\nsetReadOnly( ns, 'sabs2', sabs2 );\n\n/**\n* @name scbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/scbrt}\n*/\nimport scbrt from './../../../strided/special/scbrt';\nsetReadOnly( ns, 'scbrt', scbrt );\n\n/**\n* @name sceil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sceil}\n*/\nimport sceil from './../../../strided/special/sceil';\nsetReadOnly( ns, 'sceil', sceil );\n\n/**\n* @name sdeg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sdeg2rad}\n*/\nimport sdeg2rad from './../../../strided/special/sdeg2rad';\nsetReadOnly( ns, 'sdeg2rad', sdeg2rad );\n\n/**\n* @name sfloor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sfloor}\n*/\nimport sfloor from './../../../strided/special/sfloor';\nsetReadOnly( ns, 'sfloor', sfloor );\n\n/**\n* @name sinBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sin-by}\n*/\nimport sinBy from './../../../strided/special/sin-by';\nsetReadOnly( ns, 'sinBy', sinBy );\n\n/**\n* @name sinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sinv}\n*/\nimport sinv from './../../../strided/special/sinv';\nsetReadOnly( ns, 'sinv', sinv );\n\n/**\n* @name smskabs\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskabs}\n*/\nimport smskabs from './../../../strided/special/smskabs';\nsetReadOnly( ns, 'smskabs', smskabs );\n\n/**\n* @name smskabs2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskabs2}\n*/\nimport smskabs2 from './../../../strided/special/smskabs2';\nsetReadOnly( ns, 'smskabs2', smskabs2 );\n\n/**\n* @name smskcbrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskcbrt}\n*/\nimport smskcbrt from './../../../strided/special/smskcbrt';\nsetReadOnly( ns, 'smskcbrt', smskcbrt );\n\n/**\n* @name smskceil\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskceil}\n*/\nimport smskceil from './../../../strided/special/smskceil';\nsetReadOnly( ns, 'smskceil', smskceil );\n\n/**\n* @name smskdeg2rad\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskdeg2rad}\n*/\nimport smskdeg2rad from './../../../strided/special/smskdeg2rad';\nsetReadOnly( ns, 'smskdeg2rad', smskdeg2rad );\n\n/**\n* @name smskfloor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskfloor}\n*/\nimport smskfloor from './../../../strided/special/smskfloor';\nsetReadOnly( ns, 'smskfloor', smskfloor );\n\n/**\n* @name smskinv\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskinv}\n*/\nimport smskinv from './../../../strided/special/smskinv';\nsetReadOnly( ns, 'smskinv', smskinv );\n\n/**\n* @name smskramp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskramp}\n*/\nimport smskramp from './../../../strided/special/smskramp';\nsetReadOnly( ns, 'smskramp', smskramp );\n\n/**\n* @name smskrsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smskrsqrt}\n*/\nimport smskrsqrt from './../../../strided/special/smskrsqrt';\nsetReadOnly( ns, 'smskrsqrt', smskrsqrt );\n\n/**\n* @name smsksqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smsksqrt}\n*/\nimport smsksqrt from './../../../strided/special/smsksqrt';\nsetReadOnly( ns, 'smsksqrt', smsksqrt );\n\n/**\n* @name smsktrunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/smsktrunc}\n*/\nimport smsktrunc from './../../../strided/special/smsktrunc';\nsetReadOnly( ns, 'smsktrunc', smsktrunc );\n\n/**\n* @name sqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sqrt}\n*/\nimport sqrt from './../../../strided/special/sqrt';\nsetReadOnly( ns, 'sqrt', sqrt );\n\n/**\n* @name sqrtBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sqrt-by}\n*/\nimport sqrtBy from './../../../strided/special/sqrt-by';\nsetReadOnly( ns, 'sqrtBy', sqrtBy );\n\n/**\n* @name sramp\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/sramp}\n*/\nimport sramp from './../../../strided/special/sramp';\nsetReadOnly( ns, 'sramp', sramp );\n\n/**\n* @name srsqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/srsqrt}\n*/\nimport srsqrt from './../../../strided/special/srsqrt';\nsetReadOnly( ns, 'srsqrt', srsqrt );\n\n/**\n* @name ssqrt\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/ssqrt}\n*/\nimport ssqrt from './../../../strided/special/ssqrt';\nsetReadOnly( ns, 'ssqrt', ssqrt );\n\n/**\n* @name strunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/strunc}\n*/\nimport strunc from './../../../strided/special/strunc';\nsetReadOnly( ns, 'strunc', strunc );\n\n/**\n* @name trunc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/strided/special/trunc}\n*/\nimport trunc from './../../../strided/special/trunc';\nsetReadOnly( ns, 'trunc', trunc );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name ops\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/strided/ops}\n*/\nimport ops from './../../strided/ops';\nsetReadOnly( ns, 'ops', ops );\n\n/**\n* @name special\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/strided/special}\n*/\nimport special from './../../strided/special';\nsetReadOnly( ns, 'special', special );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/math/tools/unary}\n*/\nimport unary from './../../tools/unary';\nsetReadOnly( ns, 'unary', unary );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils/define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name base\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/base}\n*/\nimport base from './../base';\nsetReadOnly( ns, 'base', base );\n\n/**\n* @name iter\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/iter}\n*/\nimport iter from './../iter';\nsetReadOnly( ns, 'iter', iter );\n\n/**\n* @name special\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/special}\n*/\nimport special from './../special';\nsetReadOnly( ns, 'special', special );\n\n/**\n* @name strided\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/strided}\n*/\nimport strided from './../strided';\nsetReadOnly( ns, 'strided', strided );\n\n/**\n* @name tools\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/math/tools}\n*/\nimport tools from './../tools';\nsetReadOnly( ns, 'tools', tools );\n\n\n// EXPORTS //\n\nexport default ns;\n"],"names":["sqrt","Math","floor","isPrime","x","N","i","FLOAT64_MAX_SAFE_INTEGER","WHEEL_PRIMES","isInteger","isComposite","PINF","isnan","gcd","a","b","NINF","NaN","INT32_MAX","t","k","bitwise","largeIntegers","isEven","isInfinite","isInfinitef","isnanf","isNegativeInteger","isNegativeZero","isNegativeZerof","isNonNegativeInteger","isOdd","isPositiveZero","isProbability","ns","add","y","abs","max","internalCompreal","re1","im1","re2","im2","r","br","robustInternal","out","setReadOnly","v","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","LARGE_THRESHOLD","FLOAT64_BIGGEST","SMALL_THRESHOLD","FLOAT64_SMALLEST","EPS","RECIP_EPS_SQR","csub","z1","z2","re","real","im","imag","Complex128","csubf","float64ToFloat32","realf","imagf","Complex64","imul","builtin","la","lb","LOW_WORD_MASK","imuldw","stride","offset","w1","w3","ha","hb","fcn","mul","sub","main","assign","umuldw","abs2","abs2f","absf","caddf","cmulf","cadd","cmul","z","w","u","ab","cd","s","MOREBITS","asin","sgn","zz","p","s1","s2","ratevalRS","PIO4","ratevalPQ","acos","CONST_180_DIV_PI","rad2deg","sqrtf","evalpoly","ALMOST_PI","PIO2_HI","PIO2_LO","MASK_LO","SMALL","QS1","PIO2","acosf","idf","df","ax","q","c","PI","polyp","toWord","fromWord","LN2_HI","LN2_LO","SQRT2M1","SQRT2HALFM1","TINY","TWO53","TWO_THIRDS","log1p","hfsq","hu","f","R","getHighWord","FLOAT64_EXPONENT_BIAS","setHighWord","polyval","TWO54","ONE_THIRD","HIGH_SIGNIFICAND_MASK","HIGH_MAX_NORMAL_EXP","HIGH_MIN_NORMAL_EXP","HIGH_BIASED_EXP_0","ln","hx","t2","t1","j","BIAS","polyvalP","polyvalQ","HUGE","acosh","LN2","T3P8","atan","flg","acot","atanf","PI02F","PI04F","NEAR_ZERO","atanh","acoth","acovercos","acoversin","acsc","rad2degf","asinf","flag","acscf","asinh","xx","isinfinite","ahavercos","ahaversin","asec","asecf","WORDS","copysign","hy","toWords","ABS_MASK","fromWords","SIGN_MASK","atan2","signbit","avercos","aversin","MAX_BERNOULLI","bernoulli","n","BERNOULLI","TWO52_INV","CLEAR_EXP_MASK","FRAC","ldexp","frac","exp","high","m","normalize","floatExp","MIN_SUBNORMAL_EXPONENT","MAX_EXPONENT","MAX_SUBNORMAL_EXPONENT","IPIO2","TWO24","TWON24","F","zeros","Q","FQ","IQ","compute","jz","q0","jk","jv","jx","carry","fw","ih","jp","kernelRempio2","e0","nx","round","INVPIO2","PIO2_1","PIO2_1T","PIO2_2","PIO2_2T","PIO2_3","PIO2_3T","EXPONENT_MASK","rempio2Medium","ix","ZERO","TWO_PIO2_1T","THREE_PIO2_1T","FOUR_PIO2_1T","PI_HIGH_WORD_SIGNIFICAND","PIO4_HIGH_WORD","THREE_PIO4_HIGH_WORD","FIVE_PIO4_HIGH_WORD","THREE_PIO2_HIGH_WORD","SEVEN_PIO4_HIGH_WORD","TWO_PI_HIGH_WORD","NINE_PIO4_HIGH_WORD","MEDIUM","TX","TY","rempio2","low","SIGNIFICAND_MASK","getLowWord","rempio2Kernel","S1","S2","S3","S4","S5","S6","C1","C2","C3","C4","C5","C6","kernelSincos","hz","SMALL_HIGH_WORD","Y","sincos","tmp","ONE_DIV_SQRT_PI","x1","x2","x11","x12","x21","x22","sc","j0","rc","rs","y2","poly1","poly2","polyC","polyS","j1","value","SQRT_PI","TWO_DIV_PI","x3","x31","x32","y0","besselj0","poly3","y1","besselj1","ceil","trunc","LOG2_E","OVERFLOW","UNDERFLOW","NEARZERO","NEG_NEARZERO","hi","lo","expmulti","HIGH_MAX_NEAR_UNITY","HIGH_BIASED_EXP_NEG_512","HIGH_SIGNIFICAND_HALF","HIGH_NUM_SIGNIFICAND_BITS","CP","CP_HI","CP_LO","BP","DP_HI","DP_LO","INV_LN2","INV_LN2_HI","INV_LN2_LO","HIGH_BIASED_EXP_NEG_1","HIGH_BIASED_EXP_31","HIGH_BIASED_EXP_64","HIGH_BIASED_EXP_10","HIGH_1075","HIGH_NEG_1075","HIGH_NUM_NONSIGN_BITS","OVT","LOG_WORKSPACE","pow","ahx","ahy","sx","sy","hp","lp","yIsInfinite","xIsZero","yIsHuge","setLowWord","logx","ss","hs","ls","ht","bp","dp","lz","log2ax","uint32ToInt32","pow2","evalrational","Infinity","G","beta","ambh","agh","bgh","cgh","res","EPSILON","lanczosSumExpGScaled","E","OVERFLOW_THRESHOLD","LN2_INV","LN2x56","LN2_HALFX3","expm1","halfX","twopk","sign","r1","e","HALF_LN2","min","kernelCos","polyval13","polyval46","kernelSin","sin","HIGH_WORD_ABS_MASK","HIGH_WORD_EXPONENT_MASK","MAX_STIRLING","gamma","SQRT_TWO_PI","EULER","stirlingApprox","smallApprox","rateval","factorial","FLOAT64_MAX_SAFE_NTH_FACTORIAL","FACTORIALS","FACTORIAL_169","gammaDeltaRatioLanczos","delta","result","ratio","zgh","MAX_FACTORIAL","lanczosSum","gammaDeltaRatio","idelta","iz","buffer","HIGH_WORD_PIO4","HIGH_WORD_TWO_NEG_27","cos","sinpi","ar","A1C","A2C","RC","SC","T1C","T2C","T3C","UC","VC","WC","YMIN","TWO52","TWO56","TC","TF","TT","gammaln","isNegative","nadj","p3","p2","p1","polyvalA1","polyvalA2","polyvalT1","polyvalT2","polyvalT3","polyvalU","polyvalV","polyvalS","polyvalR","polyvalW","ERX","PPC","QQC","PAC","QAC","RAC","SAC","RBC","SBC","erfc","polyvalPP","polyvalQQ","polyvalPA","polyvalQA","polyvalRA","polyvalSA","polyvalRB","polyvalSB","fullIGammaPrefix","alz","MAX_LN","MIN_LN","length","factory","Fcn","sumSeries","hasGeneratorSupport","generator","options","tolerance","nextTerm","counter","opts","arguments","maxTerms","initialValue","next","sumSeries$1","log1pmx","FLOAT_EPS","mMult","mProd","log1pSeries","workspace","lowerGammaSeries","a1","lowerIncompleteGammaSeries","regularisedGammaPrefix","prefix","amza","amz","sq","d","powm1","Y1","Y2","Y3","lgammaSmallImp","zm1","zm2","rateval2","rateval3","gamma1pm1","continuedFraction","maxIter","eps","keep","gen","factor","isgenerator","C","D","FLOAT32_SMALLEST_NORMAL","continuedFractionB","a0","continuedFractionA","continuedFraction$1","upperGammaFraction","upperIncompleteGammaFract","gammainc","regularized","upper","optimisedInvert","normalized","evalMethod","initValue","isHalfInt","useTemme","invert","isInt","sigma","fa","g","SQRT_EPSILON","term","sum","finiteGammaQ","finiteHalfGammaQ","FLOAT64_MAX","pgam","apn","smallGamma2Series","tgammaSmallUpperPart","phi","polyvalC0","polyvalC1","polyvalC2","polyvalC3","polyvalC4","polyvalC5","polyvalC6","polyvalC7","polyvalC8","TWO_PI","igammaTemmeLarge","Array","betaSmallBLargeASeries","s0","mult","tmp1","tnp1","b2n","bm1","lx2","lxp","mbn","lx","t4","h","regularizedGammaPrefix","MIN_VALUE","risingFactorialRatio","maxabs","minabs","ibetaPowerTerms","smallA","l1","l2","l3","b1","b2","l","OPTS","ibetaFraction2","denom","aN","bN","ibetaFraction2t","binomcoef","ibetaAStep","ibetaSeries","poch","ibetaSeriesT","ONE_OVER_PI","ibetaImp","fract","bbar","div","i0","i1","MAX_FLOAT64","MIN_FLOAT64","HALF_PI","MAX_INT32","startTerm","start","binomialCCDF","kernelBetainc","betainc","Y4","Y5","erfcinv","rationalFcnR1","rationalFcnR2","rationalFcnR3","rationalFcnR4","rationalFcnR5","c0","inverseStudentsTBodySeries","polyval2","polyval3","polyval4","polyval5","polyval6","polyval7","polyval8","polyval9","inverseStudentsTTailSeries","np2","np4","np6","rn","inverseStudentsTHill","ndf","SQRT2","DF_THRESHOLD","EXP","findIBetaInvFromTDist","py","rootAlpha","p0","p4","inverseStudentsT","terms","BIG","MAX_VALUE","temmeRootFinder","signum","newtonRaphsonIterate","fun","guess","digits","f0last","delta1","delta2","count","f0","f1","debug","require$$0","THRESHOLD","ONEO12","ONEO120","AK","lambdaeta","eta","L2","L3","L4","L5","L","polyvalAK2","A","stirling","SMALLEST_FLOAT32","MAX_FLOAT32","LN_SQRT_TWO_PI","tt","u0","u1","u2","chepolsum","polyvalC","polyvalD","gamstar","FLOAT32_MAX","HALF","ONEO3","ONEO4","ONEO5","ONEO6","ONEO24","CK","ap1inv","invfp","lgama","pcase","porq","ainv","logr","ap22","ap14","ap13","ap12","vgam","xini","ap1","ap2","ap3","p5","x0","a2","b3","a4","a3","xr","eps1","lnmeta","rateval1","eps2","rational1","rational2","rational3","rational4","rational5","eps3","dlnr","ck2","higherNewton","gammaincinv","FLOAT32_SMALLEST","DIGITS","MAX_ITERATIONS","ibetaInvImp","lambda","lower","theta","roots","maxv","minv","bet","ppa","xs2","fs","xg","xs","yp","eta0","eta2","B2","B3","B","temme1","alpha","sc7","sc6","sc5","sc4","sc3","sc2","lu","c2","polyval1","polyval10","polyval11","polyval12","temme2","cross","w12","w13","w14","e1","e2","e3","mu","d2","d3","w2","w4","w5","w6","w7","w8","w9","SMALLEST_SUBNORMAL","temme3","FLOAT64_MIN_NORM","target","buf","f2","ibetaRoots","minimum","maximum","convergence","outOfBounds","f0Last","diff","num","halleyIterate","ALGMCS","LEN","XBIG","XMAX","gammaCorrection","twox","b0","dceval","betaln","corr","correction","MAX_INTEGER_P1","MAX_INTEGER","cospi","rx","SQRT_5","binet","PHI","hypot","cabs","hypotf","HIGH_WORD_MASK","TWO_54","TWO_31","ONE","B1","FLOAT64_SMALLEST_NORMAL_HIGH_WORD","FLOAT64_SMALLEST_NORMAL","cbrt","hw","cbrtf","ceilf","MAX_INT","ceiln","MIN_EXP_SUBNORMAL","MAX_EXP","MIN_EXP","WORKSPACE","kernelLog1p","IVLN2HI","IVLN2LO","log2","valHi","valLo","ceil2","IVLN10HI","IVLN10LO","LOG10_2HI","LOG10_2LO","log10","ceil10","floorn","PI_DIV_180","deg2rad","cosh","cosm1","PIO4LO","T0","kernelTan","polyvalOdd","polyvalEven","tan","cot","MAXLOG","tanh","ratval","covercos","coversin","cphase","cpolar","roundn","POS_OVERFLOW","NEG_OVERFLOW","LARGE","sinh","deg2radf","root1","root2","root3","MIN_SAFE_ASYMPTOTIC","digamma","rem","asymptoticApprox","rationalApprox","diracDelta","MAX_BERNOULLI_2N","zeta","as","is","EVEN_NONNEGATIVE_INTEGERS","ODD_POSITIVE_INTEGERS","rateval4","rateval5","rateval6","ONE_DIV_PI","ellipk","FLG","kdm","td","qd","poly4","poly5","poly6","poly7","poly8","poly9","poly10","poly11","poly12","ellipe","edm","km","tmp4","tmp2","ca","dnDenom","NANFLG","uK2cen","k1inv","sechu","sinhu","tanhu","phi0","phi1","atmp","uK2","uK4","K2","K4","sn","cn","dn","am","SQRT_EPS","ellipj","VERY_TINY","EFX","EFX8","erf","table","erfcxY100","y100","INV_SQRT_PI","erfinv","exp2","px","FLOAT64_MAX_BASE2_EXPONENT","FLOAT64_MIN_BASE2_EXPONENT","LOG210","LG102A","LG102B","exp10","MAXL10","MINL10","expit","expm1rel","factorialln","fallingFactorial","xp1","n2","inv","risingFactorial","ALPHA","BETA","labs","mask","nonnegative","ints","hypot1a","hypot1b","hypot2a","hypot2b","closure1a","closure1b","ampbm","root","bit","LN_PHI","floor2","floor10","floorf","fresnel","xa","polyF","polyG","computeFresnel","fresnelc","fresnels","S","SET_EXP_MASK","X","frexp","hacovercos","hacoversin","havercos","haversin","identity","invf","log","log1mexp","log1pexp","logit","maxn","len","minn","minmax","minmaxabs","ay","minmaxabsn","av","args","push","apply","minmaxn","ALL_ONES","modf","FLOAT64_HIGH_WORD_EXPONENT_MASK","FLOAT64_HIGH_WORD_SIGNIFICAND_MASK","nonfibonacci","YOFFSET24","trigamma","PI_SQUARED","rateval12","rateval24","rateval48","rateval816","rateval16INF","MAX_SERIES_ITERATIONS","atinfinityplus","partTerm","xsquared","k2","LN_TWO","DIGITS_BASE10","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","polycotpi","xc","powTerms","idx","ncols","mcols","mo","so","co","calculateDerivatives","LN_PI","ramp","rampf","HALF_HUGE","round2","round10","rsqrt","rsqrtf","sici","si","ci","polyvalFN4","polyvalFD4","polyvalGN4","polyvalGD4","polyvalFN8","polyvalFD8","polyvalGN8","polyvalGD8","polyvalSN","polyvalSD","polyvalCN","polyvalCD","GAMMA","sinc","sincospi","PI2O6","spence","polyvalA","polyvalB","sqrt1pm1","trunc2","trunc10","truncn","truncf","vercos","versin","special","evalpolyf","P","evalrationalf","bessely0","bessely1","kernelBetaincinv","binomcoefln","lgx","ly","exponent","wx","wy","az","last","fast","MAX_FIBONACCI","FIBONACCI","gammaLanczosSum","gammaLanczosSumExpGScaled","fx","continuity","MAX_LUCAS","LUCAS","nargs","an","NEGAFIBONACCI","NEGALUCAS","polygamma","factorialPart","scale","AX","MAX","nearzero","minusMminus1","iter","sum0","attransitionplus","base","TRIBONACCI","Float32Array","cache","coefficients","coefs","fibpoly","normhermitepoly","y3","isint","hermitepoly","constantFunction","half","lucaspoly","SCALES","mean","relativeDifference","isFunction","SCALE","Error","format","MAX_DIFF","reldiff","assert","ops","tools","utils","iterAdd","iterators","types","niter","isIteratorLike","isNumber","TypeError","done","iteratorSymbol","iterDivide","iterMod","iterMultiply","iterSubtract","returns","RESULT_FUNCTION","convergent","negative","convergents","MAX_ITER","iterMap","iterator","err","invalid","isPlainObject","hasOwnProp","validate","iterMap2","iter0","iter1","values","iterCompositesSeq","iterContinuedFractionSeq","orig","neg","bi","fi","Ci","Di","isFinite","tol","indexOf","join","item","pop","first","clear","FIFO","fj","iterCubesSeq","iterEvenIntegersSeq","iterFactorialsSeq","iterFibonacciSeq","RangeError","iterFifthPowersSeq","iterFourthPowersSeq","iterIntegersSeq","iterLucasSeq","iterNegaFibonacciSeq","iterNegaLucasSeq","iterNegativeEvenIntegersSeq","iterNegativeIntegersSeq","iterNegativeOddIntegersSeq","iterNonFibonacciSeq","iterNonNegativeEvenIntegersSeq","iterNonNegativeIntegersSeq","iterNonPositiveEvenIntegersSeq","iterNonPositiveIntegersSeq","iterNonSquaresSeq","iterOddIntegersSeq","iterPositiveEvenIntegersSeq","iterPositiveIntegersSeq","iterPositiveOddIntegersSeq","iterPrimesSeq","iterSquaredTriangularSeq","iterSquaresSeq","iterTriangularSeq","map","map2","iterMap3","iter2","o","sequences","resolve","xdtype","policy","ORDERS","orders","DTYPES","dtypes","dispatch","fields","key","objectKeys","isNull","validateTable","number","complex","array","ndarray","defaults","output_dtype_policy","contains","POLICIES","validateOptions","ydtype","isComplexLike","dtype","order","isndarrayLike","odtype","yorder","shape","copy","numel","shape2strides","ndarrayfcn","isCollection","xsh","ysh","broadcast","data","unary","meta","nin","nout","dtypeX","strideX","dtypeY","strideY","offsetX","offsetY","setProps","strided","dispatcher","config","signatures","enums","callbacks","default","complex64","complex128","binary","dtypeZ","strideZ","addBy","sz","clbk","thisArg","mapBy2","offsetZ","ox","oy","oz","mulBy","subBy","absBy","mapBy","abs2By","acosBy","acoshBy","acotBy","acothBy","acovercosBy","acoversinBy","ahavercosBy","ahaversinBy","asinBy","asinhBy","atanBy","atanhBy","avercosBy","aversinBy","besselj0By","besselj1By","bessely0By","bessely1By","binetBy","cbrtBy","cosBy","dabs","dmap","dabs2","dcbrt","dcbrtBy","dceil","ddeg2rad","dfloor","dinv","dmskabs","sm","dmskmap","dmskabs2","dmskcbrt","dmskceil","dmskdeg2rad","dmskfloor","dmskinv","dmskramp","dmskrsqrt","dmsksqrt","dmsktrunc","dramp","drsqrt","dsqrt","dtrunc","om","sabs","smap","sabs2","scbrt","sceil","sdeg2rad","sfloor","sinBy","sinv","smskabs","smskmap","smskabs2","smskcbrt","smskceil","smskdeg2rad","smskfloor","smskinv","smskramp","smskrsqrt","smsksqrt","smsktrunc","sqrtBy","sramp","srsqrt","ssqrt","strunc"],"mappings":"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"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index d856898f6..000000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - -